gpt4 book ai didi

具有各种操作数的 Java lambda 表达式

转载 作者:行者123 更新时间:2023-11-30 06:11:50 27 4
gpt4 key购买 nike

此 lambda 表达式非常适合具有两个操作数(a 和 b)的数学运算。

public class Math {
interface IntegerMath {
int operation(int a, int b);
}

private static int apply(int a, int b, IntegerMath op) {
return op.operation(a, b);
}

public static void main(String... args) {
IntegerMath addition = (a, b) -> a + b;
IntegerMath subtraction = (a, b) -> a - b;
System.out.println("40 + 2 = " + apply(40, 2, addition));
System.out.println("20 - 10 = " + apply(20, 10, subtraction));

}
}

例如,如何使用可能的一元 操作来增强此类

IntergerMath square = (a) -> a * a;

?

最佳答案

您不能使用 IntegerMath 来实现它,因为它是一个函数式接口(interface),其单个抽象方法采用两个 int 参数。您需要一个用于一元操作的新界面。

顺便说一句,您不必自己定义这些接口(interface)。 java.util.function 包含您可以使用的接口(interface),例如 IntUnaryOperatorIntBinaryOperator

关于具有各种操作数的 Java lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33651263/

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