RxJava2找不到Func0

时间:2016-10-10 07:33:34

标签: android rx-java

RxJava 2几乎已经发布,我想从RX 1.2.0迁移到2.0.0,但我注意到RxJava 2中没有Func0接口。

开发人员应该在RxJava 2中使用哪些代替Func0?

3 个答案:

答案 0 :(得分:17)

RxJava2使用JDK的Callable接口(https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Callable.html

Observable.defer(http://reactivex.io/RxJava/2.x/javadoc/io/reactivex/Observable.html#defer(java.util.concurrent.Callable)

的示例
Observable.defer(new Callable<ObservableSource<MyObject>>() {
    @Override
    public ObservableSource<MyObject> call() throws Exception {
        return Observable.just(new MyObject());
    }
});

答案 1 :(得分:5)

从他们对what's changed between RxJava 1.x and 2.x的阐述:

  

我们通过定义遵循Java 8的命名约定   io.reactivex.functions.Functionio.reactivex.functions.BiFunction,   并分别将Func3 - Func9重命名为Function3 - Function9。   FuncNFunction<Object[], R>类型声明替换。

     

此外,需要谓词的运算符不再使用Func1<T, Boolean>,而是具有单独的原始返回类型Predicate<T>   (由于没有自动装箱,允许更好的内联)。

     

io.reactivex.functions.Functions实用程序类提供了常见功能   功能来源和转化为Function<Object[], R>

答案 2 :(得分:3)

RxJava2使用java7中的<table> <tr> <td>{{ selectedWatchList.name }}</td> <td>{{ selectedWatchList.xid }}</td> <td>{{ selectedWatchList.userId }}</td> </tr> </table>而不是java.util.concurrent.Callable