Language 入门

从匿名类迁移到 lambda 和方法引用

用简洁的 lambda 和方法引用替代单方法匿名类。

✕ Anonymous class
button.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent event) {
        save(event);
    }
});
✓ Java 8+
button.addActionListener(this::save);
发现此代码有问题? 告诉我们。
⚡

更少样板代码

省去类声明和方法重写的繁琐形式。

👁

可读性更好

让注意力集中在所执行的操作上。

🔒

仍然类型安全

编译器会检查目标函数式接口的签名。

旧方式
匿名类
现代方式
方法引用
自 JDK
8
难度
入门
从匿名类迁移到 lambda 和方法引用
可用

自 JDK 8 起可用(2014 年 3 月)。

函数式接口可以通过 lambda 或方法引用实现。这样既消除了匿名类的繁琐样板,又保留了静态类型检查和相同的回调契约。