我目前正在学习Java中Lambda的概念,并且遇到了以下代码。 IntegerMath addition
和IntegerMath subtraction
是使用lambda定义的。但是,我只是好奇如何不使用lambda来实现IntegerMath addition
和IntegerMath subtraction
?如果该建议可以附加一些代码,那就太好了!在此先感谢您的帮助!
public class Calculator {
interface IntegerMath {
int operation(int a, int b);
}
public int operateBinary(int a, int b, IntegerMath op) {
return op.operation(a, b);
}
public static void main(String... args) {
Calculator myApp = new Calculator();
IntegerMath addition = (a, b) -> a + b;
IntegerMath subtraction = (a, b) -> a - b;
System.out.println("40 + 2 = " +
myApp.operateBinary(40, 2, addition));
System.out.println("20 - 10 = " +
myApp.operateBinary(20, 10, subtraction));
}
}
最佳答案
您的lambda在功能上等同于anonymous classes,
IntegerMath addition = new IntegerMath() {
@Override
public int operation(int a, int b) {
return a + b;
}
};
IntegerMath subtraction = new IntegerMath() {
@Override
public int operation(int a, int b) {
return a - b;
}
};
关于java - 在不使用lambda的情况下实现“IntegerMath加法”和“IntegerMath减法”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36193273/