【发布时间】:2014-10-11 21:40:52
【问题描述】:
我有一个JButton称为saveButton,并希望它在单击时调用save 方法。当然,我们可以使用旧方法来做到这一点:
saveButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
save();
}
});
但是今天我想使用 Java 8 的新特性,比如方法引用。为什么
saveButton.addActionListener(this::save);
不工作?使用方法引用是如何做到的?
【问题讨论】:
-
addActionListener期望什么作为参数? Read the tutorial on method references. -
您的
save方法与actionPerformed的签名不同。因此它不能被解释为ActionListener的SMI 的实现。您需要阅读有关 Java 8 中方法引用的更多信息。 -
@BoristheSpider 谢谢。我刚刚将
save的签名更改为private void save(ActionEvent e)。现在可以了。
标签: java actionlistener java-8 method-reference