2016-06-01 16 views
1

Welche RxJava-Operationen sollte ich verwenden, um dieses Durcheinander in eine einfachere Version umzuschreiben? Vereinfacht mehrere 'if's mit rxjava

.map(content -> { 
        if (content.getPost() != null) { 
         return content.getPost(); 
        } else if (content.getAction() != null) { 
         return content.getAction().getPost(); 
        } else { 
         return null; 
        } 
       }) 

So etwas wie

.map(Content::getPost) 
.map(Content::getAction::getPost) 
.combine(..) 

Ist es möglich?

+2

Sie können nicht mit RxJava vereinfachen; es sieht gut aus, wie es übrigens ist. – akarnokd

+0

Danke! Obwohl, es gibt immer Weg zu perfekten Linien (: – aleien

Antwort

1

ziemlich viel, was akarnokd sagte, außer Sie vielleicht die Null-Post-Emissionen ausfiltern kann mit

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

Schön! Danke! – aleien