2017-01-09 19 views
2

я наблюдаемый, который излучает один объект, который имеет два поля, что-то вроде этого:RxJava: Может ли результат быть разбит на два разных наблюдаемых?

public class Details { 
    private Link link; 
    private List<Comment> comments; 
} 

Observable<Details> detailsObservable = ...; 

Теперь, я задавался вопрос: это может быть как-то наблюдаемое разделить на две наблюдаемые? Я бы хотел, чтобы абонент прослушал link, а другой - для прослушивания Comment.

ответ

0

Для этого вы можете использовать способ карты. Пример кода, приведенный ниже, дайте мне знать, если это поможет.

public static void main(String[] args) { 
    Observable<Details> dObs = Observable.just(new Details("a", "c")); 
    Observable<String> lObs = dObs.map(d -> d.link); 
    Observable<String> cObs = dObs.map(d -> d.comments); 
    lObs.subscribe(s -> System.out.println(s)); 
    cObs.subscribe(s -> System.out.println(s)); 
} 


static class Details { 
    String link; 
    String comments; 

    public Details(String link, String comments) { 
     this.link = link; 
     this.comments = comments; 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^