Java 8中Lambda表达式就是一个函数接口,也就是只有一个抽象方法的接口。
Java中,传递一个行为是通过传递一个代表某种行为的对象来实现,比如,需要给某个按钮注册一个事件监听:
button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("button clicked"); } });
通过匿名内部类传递了一个actionPerformed的行为。不过,这种传递行为的方式不得不加上一些冗繁的样板代码,从而显得不够简便。
在Java 8中可以这样写:
button.addActionListener(event -> System.out.println("button clicked"));
其实,就是开头说的那样,Lamdba表达式的类型就是一个函数接口,只是在Java 8中,编译器可以根据Lambda表达式所在的上下文推断出来所要传递行为的各种信息。
在JDK中提供了一组核心的函数接口,可以使用这些函数接口传递行为。
Lambda表达式是一个匿名方法,将行为像数据一样进行传递。
时间: 2024-10-10 08:26:46