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