Lambda语法格式


Lambda变形:

  • 1、Lambda允许忽略参数类型,只需要参数的数量保持一致就可以了,参数含义和原始含义相同

  • 2、单行实现代码可以省略大括号和return

  • 3、有且只有一个参数的时候 可以省略小括号

注意: lambda表达式只能实现有且只有一个抽象方法的接口,java称为“函数式接口”

约束条件:Lambda表达式只能实现有且一个抽象方法的接口,这种接口Java称为”函数式

案例:

MathOperation为一个接口,传统方式是要创建一个Addition类继承这个接口,然后再实现这个接口里的函数,在main函数中再实例化一个Addition对象,调用addition.operate(3,5);才能达到如下图一样的目的。

@FunctionalInterface
public interface MathOperation {
    float operator(int a, int b);
}

class ILambdaTest {
    @Test
    void testLambdaOperator() {
        // 标准写法
        MathOperation add =  (a, b) -> {
            System.out.println("加法运算");
            return a + b;
        };
        // 简洁写法
        MathOperation subtruction = (a, b) -> a - b;

        System.out.println("add = " + add.operator(1,3));
        System.out.println("subtruction = " + subtruction.operator(1,3));
    }
}