java - 适合在 rxjava 中使用 Func0 和 Action1 有什么区别

标签 java rx-java

我有以下代码片段,其中使用了 Func0Action1

Observable.defer(new Func0<Observable<String>>() {
    @Override
    public Observable<String> call() {
        try {
            return Observable.just(Database.readValue());       
        }
        catch(IOException e) {
            return Observable.error(e);     
        }   
    })
    .subscribe(new Action1<String>() {
        @Override
        public void call(String result) {
            resultTextView.setText(result);     
        }   
    }
}

但我只是想知道它们之间有什么区别。我知道数字表示参数的数量,即 Func0 没有参数,Action1 有 1 个参数。

但是,您怎么知道要使用哪一个呢?我应该使用 Action 还是 Func

call 方法的目的是什么?

非常感谢您的任何建议,

最佳答案

看看他们的定义:

interface Func0<R> {
    R call();
}

interface Action1<T> {
    void call(T t);
}

Func0 提供数据,而 Action1 消耗数据。这些是双重功能,您不会弄错这两者。

关于java - 适合在 rxjava 中使用 Func0 和 Action1 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49396619/

相关文章:

java - 如何结合地点附近 api 和地点详细信息 api?改造java rx

rx-java - 多个可观察量链接在一起以完成

java - 如何让我的回收器适配器检索发送到 firebase 数据库的消息?

scheduled-tasks - 使用 Observables 进行轮询的手动递归的更新版本是什么?

android - 使用 rxbinding 时我应该取消订阅吗?

java - 无法在我的 Spring 引导项目中使用 Maven 依赖项

android - 如何在 android 中使用 RxJava 在 Activity 之间传递数据?

java - 使用 java commons-imaging 访问 jpeg 标签

java - 为数据库类创建通用 "getColumn"方法 (Java)

java - 隐藏 Java 输出