在 flatmap 函数中修改列表时出现不支持的异常
Unsupported Exception while modifying list inside flatmap function
当我尝试从 RxJava2 中 flatmap 的 "apply" 方法内部修改列表时,我得到了一个不受支持的操作异常。
compositeDisposable.add(createObservable()
.flatMap(new Function<List<String>, ObservableSource<List<String>>>() {
@Override
public ObservableSource<List<String>> apply(List<String> s) throws Exception {
List<String> modiList = new ArrayList<String>();
modiList.addAll(s);
modiList.add("barber");
//s.add("barber") and return Observable.fromArray(s) thows error
return Observable.fromArray(modiList);
}
})
.subscribeWith(getObserver()));
但是,如果我创建一个新列表,它可以正常工作,如上所示。
有什么见解吗?
下面是我的 Observable 创建逻辑:
String[] arr = {"hi", "hello", "bye"};
Observable<List<String>> observable;
observable = Observable.fromCallable(() -> Arrays.asList(arr));
正如 akarnokd 所指出的那样,改变 flatMap 中列表的值通常是一个坏主意,但你的表面问题是 Arrays.asList
返回的接口 List
的实现没有实施 addAll
.
当我尝试从 RxJava2 中 flatmap 的 "apply" 方法内部修改列表时,我得到了一个不受支持的操作异常。
compositeDisposable.add(createObservable()
.flatMap(new Function<List<String>, ObservableSource<List<String>>>() {
@Override
public ObservableSource<List<String>> apply(List<String> s) throws Exception {
List<String> modiList = new ArrayList<String>();
modiList.addAll(s);
modiList.add("barber");
//s.add("barber") and return Observable.fromArray(s) thows error
return Observable.fromArray(modiList);
}
})
.subscribeWith(getObserver()));
但是,如果我创建一个新列表,它可以正常工作,如上所示。 有什么见解吗?
下面是我的 Observable 创建逻辑:
String[] arr = {"hi", "hello", "bye"};
Observable<List<String>> observable;
observable = Observable.fromCallable(() -> Arrays.asList(arr));
正如 akarnokd 所指出的那样,改变 flatMap 中列表的值通常是一个坏主意,但你的表面问题是 Arrays.asList
返回的接口 List
的实现没有实施 addAll
.