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

ant*_*009 4 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);     
        }   
    }
}
Run Code Online (Sandbox Code Playgroud)

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

但是,你怎么知道使用哪一个?我应该使用ActionFunc.

call方法的目的是什么?

非常感谢任何建议,

aka*_*okd 5

看看他们的定义:

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

interface Action1<T> {
    void call(T t);
}
Run Code Online (Sandbox Code Playgroud)

Func0规定而数据Action1消耗数据.这些是双重功能,你不能误解这两个.