2016-06-01 82 views
1

我應該使用哪種RxJava操作來將此混亂重寫爲更簡單的版本?用rxjava簡化多個if'

.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(..) 

這可能嗎?

+2

不能簡化與RxJava;它看起來很好,因爲順便說一句。 – akarnokd

+0

謝謝!雖然,總有辦法完美線條(: – aleien

回答

1

差不多就是akarnokd說,除了可以使用或許濾除無效後排放

.filter(content -> (content.getPost() != null) || ((content.getAction() != null) && (content.getAction().getPost()))) 
.map(content -> (content.getPost() != null ? content.getPost() : content.getAction().getPost())) 
+0

不錯!謝謝! – aleien