使用 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()))