【发布时间】:2018-03-31 09:44:14
【问题描述】:
我想为我的列表变量分配一个结果值,但是 lambda 中的一个变量必须是最终的,如果它是最终的,它就无法接收值。
public List<PersonalInfo> getAllPatient() {
List<PersonalInfo> mPersonalInfoList;
AppDatabase db = AppDatabase.getAppDatabase(mContext);
db.patientDao().getAll()
.flatMapIterable(patientlist -> {
List<PersonalInfo> personalInfoList = new ArrayList<>();
for (PersonalInfo p: patientlist) {
p.setColor(getRandomMaterialColor("400"));
personalInfoList.add(p);
}
return personalInfoList;
})
.toList()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(result ->
// error
mPersonalInfoList =result
);
return mPersonalInfoList;
}
【问题讨论】:
-
这需要阻塞调用
getAllPatient的线程。你为什么要这个?你不能只返回Single<List<PersonalInfo>>并让代码处理subscribe(list -> ...)中的列表吗?
标签: java android rx-java android-room