Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RxJava函数编程:如何使用适当的参数调用匿名函数_Java_Functional Programming_Func_Rx Java - Fatal编程技术网

RxJava函数编程:如何使用适当的参数调用匿名函数

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

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 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总是需要参数。如果你不改变参数的状态,我认为没有种族条件。我最后和一位同事讨论了一下,他给出了和你一样的答案。所以我想我会接受的!