您的位置:首页 > 编程语言 > Java开发

Java 函数式接口以及Lambda举例

2017-06-23 18:31 363 查看
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);
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: