我目前正在学习Java中Lambda的概念,并且遇到了以下代码。 IntegerMath additionIntegerMath subtraction是使用lambda定义的。但是,我只是好奇如何不使用lambda来实现IntegerMath additionIntegerMath 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/

10-08 23:16