Java 将lambda表达式转换回内部类?

Java 将lambda表达式转换回内部类?,java,lambda,java-8,Java,Lambda,Java 8,我有以下lambda表达式: Function<Integer, Function<Integer, Function<BinaryOperator<Integer>, Integer>>> someComputation = i1 -> i2 -> f -> f.apply(i1, i2); Function someComputation=i1->i2->f->f.apply(i1,i2); Java 8 lambda语法

我有以下lambda表达式:

Function<Integer, Function<Integer, Function<BinaryOperator<Integer>, Integer>>> someComputation = i1 -> i2 -> f -> f.apply(i1, i2);
Function someComputation=i1->i2->f->f.apply(i1,i2);
Java 8 lambda语法对我来说仍然有点陌生,所以我尝试将其转换回内部类,但似乎无法转换,因为它会引发编译错误,或者可能缺少一些内容。 以下是我的想法:

    Function<Integer, Function<Integer, Function<BinaryOperator<Integer>, Integer>>> someComputation2 = new Function<Integer, Function<Integer, Function<BinaryOperator<Integer>, Integer>>>() {
        @Override
        public Function<Integer, Function<BinaryOperator<Integer>, Integer>> apply(Integer integer) {

            Function<Integer, Function<BinaryOperator<Integer>, Integer>> f = new Function<Integer, Function<BinaryOperator<Integer>, Integer>>() {
                @Override
                public Function<BinaryOperator<Integer>, Integer> apply(Integer integer) {


                    return new Function<BinaryOperator<Integer>, Integer>() {
                        @Override
                        public Integer apply(BinaryOperator<Integer> integerBinaryOperator) {
                            return integerBinaryOperator.apply(f,""" WHAT IS IN HERE ???""");
                        }
                    };



                }
            };

            return f;
        }
    };
Function someComputation2=新函数(){
@凌驾
公共函数应用(整数){
函数f=新函数(){
@凌驾
公共函数应用(整数){
返回新函数(){
@凌驾
公共整数应用(二进制运算符integerBinaryOperator){
返回integerBinaryOperator.apply(f,““这里是什么?”);
}
};
}
};
返回f;
}
};

在外部匿名类实例的方法中有两个
整数
变量。以下是应传递给最内部方法调用的变量:

Function<Integer, Function<Integer, Function<BinaryOperator<Integer>, Integer>>> someComputation2 = new Function<Integer, Function<Integer, Function<BinaryOperator<Integer>, Integer>>>() {
    @Override
    public Function<Integer, Function<BinaryOperator<Integer>, Integer>> apply(Integer i1) {
        Function<Integer, Function<BinaryOperator<Integer>, Integer>> f = new Function<Integer, Function<BinaryOperator<Integer>, Integer>>() {
            @Override
            public Function<BinaryOperator<Integer>, Integer> apply(Integer i2) {
                return new Function<BinaryOperator<Integer>, Integer>() {
                    @Override
                    public Integer apply(BinaryOperator<Integer> integerBinaryOperator) {
                        return integerBinaryOperator.apply(i1, i2);
                    }
                };
            }
        };
        return f;
    }
};
Function someComputation2=新函数(){
@凌驾
公共函数应用(整数i1){
函数f=新函数(){
@凌驾
公共函数应用(整数i2){
返回新函数(){
@凌驾
公共整数应用(二进制运算符integerBinaryOperator){
返回integerBinaryOperator.apply(i1,i2);
}
};
}
};
返回f;
}
};

如果您使用的是Eclipse或其他等效的Java IDE,则可以生成一些框架代码,然后连接所需的实现。你所期望的是

Function<Integer, Function<Integer, Function<BinaryOperator<Integer>, Integer>>> someComputation = new Function<Integer, Function<Integer,Function<BinaryOperator<Integer>,Integer>>>() {

        @Override
        public Function<Integer, Function<BinaryOperator<Integer>, Integer>> apply(Integer t1) {
            return new Function<Integer, Function<BinaryOperator<Integer>,Integer>>() {

                @Override
                public Function<BinaryOperator<Integer>, Integer> apply(Integer t2) {
                    return new Function<BinaryOperator<Integer>, Integer>() {

                        @Override
                        public Integer apply(BinaryOperator<Integer> t3) {
                            return t3.apply(t1, t2);
                        }
                    };
                }
            };
        }
    };
函数someComputation=新函数(){
@凌驾
公共函数应用(整数t1){
返回新函数(){
@凌驾
公共函数应用(整数t2){
返回新函数(){
@凌驾
公共整数应用(二进制运算符t3){
返回t3。应用(t1,t2);
}
};
}
};
}
};

即使您不熟悉lambda语法,也不是用一吨样板文件替换一行可读代码的理由code@AndrewTobilko如果新语法令人困惑,理解它的最好方法之一就是将它转换回您已经知道的内容。不要抨击学习。@AndrewTobilko我不是在代码中这样做的。。。我只是在学习,只是感到困惑。。。这是我试图理解的文章