我正在阅读有关新功能的信息:http : //www.javaworld.com/article/2078836/java-se/love-and-hate-for-java-8.html
我看到了下面的例子:
使用匿名类:
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
System.out.println("Action Detected");
}
});
使用 Lambda:
button.addActionListener(e -> {
System.out.println("Action Detected");
});
如果有人MouseListener
想在匿名类中实现多个方法,他们会用 a 做什么,例如:
public void mousePressed(MouseEvent e) {
saySomething("Mouse pressed; # of clicks: "
+ e.getClickCount(), e);
}
public void mouseReleased(MouseEvent e) {
saySomething("Mouse released; # of clicks: "
+ e.getClickCount(), e);
}
... 等等?
从JLS 9.8
Lambda 需要这些功能接口,因此仅限于它们的单一方法。匿名接口仍然需要用于实现多方法接口。
addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent e) { ... } @Override public void mousePressed(MouseEvent e) { ... } });