我有以下代码片段Func0和Action1使用.
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个参数.
但是,你怎么知道使用哪一个?我应该使用Action或Func.
该call方法的目的是什么?
非常感谢任何建议,
看看他们的定义:
interface Func0<R> {
R call();
}
interface Action1<T> {
void call(T t);
}
Run Code Online (Sandbox Code Playgroud)
该Func0规定而数据Action1消耗数据.这些是双重功能,你不能误解这两个.