Lambda的标准格式简化匿名内部类的代码形式

269 阅读1分钟

1、Lambda表达式的简化格式:

        () -> {
            被重写的方法体代码
        }

例: 简化前:

public class LambdaDemo1 {
    public static void main(String[] args) {
        Animal a = new Animal() {
            @Override
            public void run() {
                System.out.println("乌龟跑的贼快");
            }
        };
        a.run();

    }
}

简化后:

public class LambdaDemo1 {
    public static void main(String[] args) {
        Animal a = () ->{ System.out.println("乌龟跑的贼快"); };
        a.run();
    }
}

进一步简化:

run(() -> {
    System.out.println("乌龟跑的贼快");
});

2、注意事项:

Lambda表达式只能简化 函数式接口 的匿名内部类的写法形式(函数式接口):

①、首先必须是接口、其次接口中有且仅有一个抽象方法的形式;

②、通常我们会在接口上加上一个 @FunctionalInterface 注解,标记该接必须是满足函数式接口。

3、Lambda表达式的省略写法(进一步在Lambda表达式的基础上继续简化):

1、参数类型可以省略不写;

2、如果只有一个参数,参数类型可以省略,同时()也可以省略;

3、如果Lambda表达式的方法体代码只有一行代码,可以省略{},同时要省略分号;

4、如果Lambda表达式的方法体代码只有一行代码,可以省略大括号不写, 此时,如果这行代码是return语句,必须省略return不写,同时也必须省略 ";" 不写。