使用 rxjava 简化多个'if'
Simplifying multiple 'if's with rxjava
我应该使用哪些 RxJava 操作来将这个烂摊子重写为更简单的版本?
.map(content -> {
if (content.getPost() != null) {
return content.getPost();
} else if (content.getAction() != null) {
return content.getAction().getPost();
} else {
return null;
}
})
类似
.map(Content::getPost)
.map(Content::getAction::getPost)
.combine( .. )
可能吗?
akarnokd 所说的差不多,除了您可以使用
过滤掉空 post 发射
.filter(content -> (content.getPost() != null) || ((content.getAction() != null) && (content.getAction().getPost())))
.map(content -> (content.getPost() != null ? content.getPost() : content.getAction().getPost()))
我应该使用哪些 RxJava 操作来将这个烂摊子重写为更简单的版本?
.map(content -> {
if (content.getPost() != null) {
return content.getPost();
} else if (content.getAction() != null) {
return content.getAction().getPost();
} else {
return null;
}
})
类似
.map(Content::getPost)
.map(Content::getAction::getPost)
.combine( .. )
可能吗?
akarnokd 所说的差不多,除了您可以使用
过滤掉空 post 发射 .filter(content -> (content.getPost() != null) || ((content.getAction() != null) && (content.getAction().getPost())))
.map(content -> (content.getPost() != null ? content.getPost() : content.getAction().getPost()))