3

我有一个可观察的,它发出一个具有两个字段的对象,如下所示:

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

Observable<Details> detailsObservable = ...;

现在,我想知道:这个 observable 可以以某种方式分成两个 observable 吗?我想做的是让一个订阅者收听s link,另一个收听Comments 。

4

1 回答 1

2

您可以使用 map 方法来实现这一点。下面分享的示例代码,让我知道它是否有帮助。

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;
    }
}
于 2017-01-09T07:56:37.437 回答