RxJava函数编程:如何使用适当的参数调用匿名函数
RxJava的startFuture(…)采用一个返回未来的RxJava函数编程:如何使用适当的参数调用匿名函数,java,functional-programming,func,rx-java,Java,Functional Programming,Func,Rx Java,RxJava的startFuture(…)采用一个返回未来的Func0(不带参数的函数) 但是,我有一个接受3个参数的函数,可以表示为Func3。我编写了这个函数,它应该关闭Func3并作为Func0的结果返回: public Func0 convertToFunc0(final Func3<type 1, type 2, type 3, Future> f) { return new Func0() { @Override public vo
Func0
(不带参数的函数)
但是,我有一个接受3个参数的函数,可以表示为Func3
。我编写了这个函数,它应该关闭Func3并作为Func0的结果返回:
public Func0 convertToFunc0(final Func3<type 1, type 2, type 3, Future> f)
{
return new Func0() {
@Override
public void call() {
f.call(???);
}
};
}
public Func0 convertToFunc0(final Func3 f)
{
返回新的Func0(){
@凌驾
公开作废通知(){
f、 呼叫(??);
}
};
}
假设我已经为“类型1”、“类型2”等插入了适当的类型,那么我如何访问f
的参数,以便对它们进行“关闭”?关于RxJava的功能部分,我真的找不到任何文档,而且我已经查看了源代码,但还没有找到任何地方。怎么样
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);
}
};
}
public Func0 convertToFunc0(final Func3 f,final type1 param1,final type2 param2,final type3 param3)
{
返回新的Func0(){
@凌驾
公开作废通知(){
f、 调用(param1、param2、param3);
}
};
}
如果
param1
、param2
和param3
不是线程安全的,则需要注意潜在的争用条件。这些参数绝对不是线程安全的。我想这会在其他情况下起作用,但它太粗糙了,特别是因为调用convertToFunc0的类不需要显式访问参数。Func3总是需要参数。如果你不改变参数的状态,我认为没有种族条件。我最后和一位同事讨论了一下,他给出了和你一样的答案。所以我想我会接受的!