需要有点奇怪。我想将列表转换为新列表。例如,将List<Android>
转换为List<AndroidWrapper>
。
班级AndroidWrapper
有两个字段。
public class AndroidWrapper {
private Android mAndroid;
private String mAvatarUrl;
public AndroidWrapper(Android android, String avatarUrl) {
this.mAndroid = android;
this.mAvatarUrl = avatarUrl;
}
}
字段mAvatar
与mAndroid
字段相关,可以从远程服务器获取。
Observable<String> fetchAvatarUrl(Android android)
那么如何使用RxJava2
呢?
答案 0 :(得分:2)
将您的列表转换为Observable
,flatMap
依赖调用,创建最终对象类型并将其收集到列表中:
Observable.fromIterable(androids)
.flatMap(android ->
fetchAvatarUrl(android)
// go into a backgroud thread
.subscribeOn(Schedulers.io())
// combine the result with the original value
.map(url -> new AndroidWrapper(android, url))
// limit the maximum concurrent fetch calls
, 1
)
.toList();