[英]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");
, e
是ActionEvent
。 如果接口中的單個方法根本沒有參數,則只能將其替換為()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.