Java 8 Lambda表達式

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

相關文章
相關標籤/搜索