2016-06-01 5 views
1

Quelles opérations RxJava dois-je utiliser pour réécrire ce désordre vers une version plus simple?Simplifier plusieurs 'if' avec rxjava

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

Quelque chose comme

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

Est-il possible?

+2

Vous ne pouvez simplifier qu'avec RxJava; ça a l'air bien comme c'est btw. – akarnokd

+0

Merci! Bien, il y a toujours moyen de parfaire les lignes (: – aleien

Répondre

1

Quasiment ce akarnokd dit, sauf que vous pouvez peut-être filtrer les émissions de post nul en utilisant

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

Nice! Merci! – aleien