gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:05:26 30 4
gpt4 key购买 nike

我有以下 lambda 表达式:

Function<Integer, Function<Integer, Function<BinaryOperator<Integer>, Integer>>> 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;
}
};

最佳答案

在外部匿名类实例的方法中有两个 Integer 变量。这些是应该传递给最内层方法调用的变量:

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;
}
};

关于java - 将 lambda 表达式转换回内部类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38629016/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com