У меня есть наблюдаемое, которое испускает один объект с двумя полями, примерно так:
public class Details {
private Link link;
private List<Comment> comments;
}
Observable<Details> detailsObservable = ...;
Теперь мне было интересно: можно ли как-то разделить эту наблюдаемую на две наблюдаемые? Я бы хотел, чтобы один подписчик слушал link
, а другой - Comment
.
3
manabreak
9 Янв 2017 в 10:32
1 ответ
Лучший ответ
Для этого вы можете использовать метод карты. Пример кода представлен ниже, дайте мне знать, если это поможет.
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;
}
}
2
Pavan Kumar
9 Янв 2017 в 10:56
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.
share()
, либоpublish()
иconnect()
на основе наблюдаемогоdObs
В противном случае он испуститDetails
дважды