Java 8 Lambda表达式

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表达式是一个匿名方法,将行为像数据一样进行传递。

posted @ 2016-01-01 11:56  魔法工匠  阅读(162)  评论(0)    收藏  举报