lambda表达式

Java 8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁。通过Lambda表达式,可以替代我们以前经常写的匿名内部类来实现接口。Lambda表达式本质是一个匿名函数

Lambda表达式函数的话,只有参数列表和方法体;

(参数列表) -> {方法体}

说明:

():用来描述参数列表;

{}:用来描述方法体

->:lambda运算符,可以叫做箭头符号,或者goes to

lambda表达式例子:

public class LambdaDemo {
    public static void main(String[] args) {
//        Cal cal = new Cal() {
//            @Override
//            public int add(int a, int b) {
//                return a + b;
//            }
//        };

        Cal cal = (int a, int b) -> {
            return a + b;
        };
        System.out.println(cal.add(1,2));
    }
}

public interface Cal {
    int add(int a, int b);
}

上面例子中的lambda表达式等同于被注释的部分

Lambda注解:@FunctionalInterface注解

特点:

接有且仅有一个抽象方法

允许定义静态方法

允许定义默认方法

允许java.lang.Object中的public方法

该注解不是必须的,如果一个接口符合"函数式接口"定义,那么加不加该注解都没有影响。加上该注解能够更好地让编译器进行检查。如果编写的不是函数式接口,但是加上了@Functionlnterface,那么编译器会报错

posted @ 2022-05-30 16:17  每日一小步  阅读(55)  评论(0编辑  收藏  举报