0
我試圖重寫這段代碼如何寫lambda表達式與事件處理程序的JavaFX
new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
System.out.println(e.hashCode());
}
};
爲
new EventHandler<MouseEvent>(e -> System.out.println(e.hashCode()));
和我得到的錯誤。我在這裏犯了什麼錯誤?
第一個代碼塊的lambda等價物只是'事件 - > System.out.println(event.hashCode())'(沒有調用構造函數,這是我認爲你在做什麼)。 –
用簡單的話來說,它是用lambda替換整個'functional interface'而不是接口中的函數。 ur首個代碼片段的lambda等價物是'event - > System.out.println(e.hashCode())'。你正在做的是基本上在構造函數中添加「lambda」。無效 – Dota2