Rx java 无法解析rxjava 2中的Observable.from方法
rxjava 1中的Observable类中有一个from方法,但在rxjava 2中找不到。如何在以下代码中替换rxjava 2中的from方法:Rx java 无法解析rxjava 2中的Observable.from方法,rx-java,rx-java2,Rx Java,Rx Java2,rxjava 1中的Observable类中有一个from方法,但在rxjava 2中找不到。如何在以下代码中替换rxjava 2中的from方法: List<Integer> ints = new ArrayList<>(); for (int i=1; i<10; i++) { ints.add(new Integer(i)); } Observable.just(ints) .flatMa
List<Integer> ints = new ArrayList<>();
for (int i=1; i<10; i++) {
ints.add(new Integer(i));
}
Observable.just(ints)
.flatMap(new Function<List<Integer>, Observable<Integer>>() {
@Override
public Observable<Integer> apply(List<Integer> ints) {
return Observable.from(ints);
}
})
List ints=new ArrayList();
对于(inti=1;i您可以使用Observable.fromIterable(source)
发件人:
某些运算符重载已使用后缀重命名,例如
fromArray、fromIterable等。原因是
库是用Java8编译的,javac通常无法消除歧义
在功能接口类型之间
List ints=new ArrayList();
对于(int i=1;i您不需要使用.just()
,因为您可以通过fromIterable()
操作符直接从列表中创建observatable
Observable.fromIterable(ints)
我想现在有点晚了,但我只是想让大家知道,API的更改与以下中的from
操作符相关:
from
消歧为fromArray
,fromIterable
,fromFuture
如果您需要列表,那么您只需使用Java流
,从中创建一个列表
,然后将其直接传递给该方法。如下所示:
Observable.fromIterable(IntStream.rangeClosed(lowerLimitInclusive,upperLimitInclusive)
.boxed()
.collect(Collectors.toList()));
或
Observable.fromIterable(Stream.iterate(lowerLimitInclusive,整数->整数+1)
.filter(整数->整数<(上限+1))
.限制((长(上限+1)-长(包括下限))
.collect(Collectors.toList());
Observable.fromIterable(IntStream.rangeClosed(lowerLimitInclusive,upperLimitInclusive)
.boxed()
.collect(Collectors.toList()));
Observable.fromIterable(Stream.iterate(lowerLimitInclusive, integer -> integer + 1)
.filter(integer -> integer < (upperLimit+1))
.limit((long(upperLimit+1)-long(lowerLimitInclusive))
.collect(Collectors.toList()));