java - 使用方法引用

标签 java actionlistener java-8 method-reference

我有一个名为 saveButtonJButton,并希望它在单击时调用 save 方法。当然我们可以使用旧的方法来做到这一点:

    saveButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            save();
        }
    });

但今天我想使用新的 Java 8 功能,例如方法引用。为什么会这样

    saveButton.addActionListener(this::save);

不工作?它是如何使用方法引用完成的?

最佳答案

方法actionPerformed(ActionEvent e) 需要单个参数e。如果您想使用方法引用,您的方法必须具有相同的签名。

private void myActionPerformed(ActionEvent e) {
    save();
}

然后就可以使用方法引用:

saveButton.addActionListener(this::myActionPerformed);

或者您可以使用 lambda 代替(注意 e 参数):

saveButton.addActionListener(e -> save());

关于java - 使用方法引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26319537/

相关文章:

java - 我应该尽可能使用并行流吗?

java-8 - java 8 并行流与 ForkJoinPool 和 ThreadLocal

java - jOOQ "IN"具有 N 次元组的谓词

java - 数组更改不起作用

java - 如何识别单击了哪个按钮并更改图片?

java - Swing JList 和 DefaultListModel。

java - 使用方法作为事件监听器而不是类

java - jdk8 中的 HashMap 调整大小

java - 根据 if 语句将 TextView 从不可见设置为可见

java - Spring Boot REST Controller 问题