让我们观察一下:
Observable<List<UserProfile>> findUser =service.getUserProfiles()
如何对其进行转换,使其返回第一个元素作为Observable(而不是仅包含第一个元素的Observable列表)。我尝试了first()
和takeFirst()
,但它仍会返回一个列表。
答案 0 :(得分:17)
映射它!
Observable<List<UserProfile>> findUser = service.getUserProfiles();
Observable<UserProfile> firstUser = findUser
.filter(list -> !list.isEmpty())
.map(list -> list.get(0));
答案 1 :(得分:3)
如果没有看到getUserProfile()会发生什么变得复杂,但是这个怎么样呢
@Test
public void getFirstUser(){
Observable<List<Integer>> findUser =Observable.just(Arrays.asList(1,2,3));
Observable<Integer> user = findUser
.flatMap(Observable::from)
.first();
user.subscribe(System.out::println);
}