簡體   English   中英

Lambda java 中的表達式語法

[英]Lambda expression syntax in java

我試圖了解“e”如何適合 java 中的以下 lambda 表達式:

testButton.addActionListener(e -> System.out.println("Click Detected by Lambda Listner"));

為什么是“e”? 不應該是“()”嗎?

e這里是變量的名稱(方法的參數),可以是任何東西。 e可能是ActionEvent類型,a ()表示沒有參數的方法

addActionListener方法需要一個ActionListener ,它是一個具有單個方法的接口

 public void actionPerformed(ActionEvent e);

在Java 8中,您可以使用lambda表達式通過這種方法來實現一個接口。 規則是lambda表達式必須具有與接口中的方法相同的參數類型和返回類型。 然后,編譯器可以將lambda表達式轉換為實現該接口的類。

因此,在這種情況下,您需要一個lambda表達式

  • 有一個參數ActionEvent
  • 具有void返回類型-也就是說,它不返回任何內容。

e -> System.out.println("something"); eActionEvent 如果接口中的單個方法根本沒有參數,則只能將其替換為()

由於您要將單個參數傳遞給Lamda表達式,因此不必強制使用()

如果我們傳遞多個參數或不傳遞任何參數,則必須使用()

我相信此鏈接將有助於理解與您的問題相關的lamda表達

線程 Runnable 接口中的 Lambda 表達式是函數接口,只有一個 run() 方法在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM