我有以下代码片段,其中使用了 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);
}
}
}
但我只是想知道它们之间有什么区别。我知道数字表示参数的数量,即 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/