package com.company;
public class Main {
public static void main(String[] args) {
Main main = new Main();
main.test();
}
public void test() {
Button button = new Button();
//传统写法
/*
button.SetActionListener(new ActionListener(){
@Override
public void actionPerformed(Event e) {
System.out.println(e.getName());
}
});
*/
// Java Lambda用法
// 可以简化代码,使表达更清晰
button.SetActionListener((e) -> {
System.out.println(e.getName());
});
Event e = new Event();
e.setName("click");
button.OnClick(e);
}
@FunctionalInterface
interface ActionListener {
void actionPerformed(Event e);
}
class Event{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Button {
private ActionListener actionListener;
public void SetActionListener(ActionListener actionListener) {
this.actionListener = actionListener;
}
public void OnClick(Event e) {
actionListener.actionPerformed(e);
}
}
}
Java 函数式接口以及Lambda举例
最新推荐文章于 2025-05-24 22:27:29 发布