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

时间:2014-03-26 01:45:16

标签: java functional-programming func rx-java

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功能部分的文档,我已经查看了源代码但没有得到任何结果。

1 个答案:

答案 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);
        }
    };
}

如果param1param2param3不是线程安全的,那么您需要注意潜在的竞争条件。