RxJava的startFuture(...)采用返回Future的Func0
(不带参数的函数)。
但是,我有一个带3个参数的函数,可以表示为Func3<type, type, type, Future>
。我写了这个函数应该关闭Func3并将其作为Func0:
public Func0 convertToFunc0(final Func3<type 1, type 2, type 3, Future> f)
{
return new Func0() {
@Override
public void call() {
f.call(???);
}
};
}
假设我已经为“类型1”,“类型2”等插入了适当的类型,我如何访问f
的参数,以便我可以“关闭”它们?我没有找到任何关于RxJava功能部分的文档,我已经查看了源代码但没有得到任何结果。
答案 0 :(得分:1)
怎么样
public Func0 convertToFunc0(final Func3<type 1, type 2, type 3, Future> f, final type1 param1, final type2 param2, final type3 param3)
{
return new Func0() {
@Override
public void call() {
f.call(param1, param2, param3);
}
};
}
如果param1
,param2
和param3
不是线程安全的,那么您需要注意潜在的竞争条件。