Language 初級

匿名クラスからラムダ式とメソッド参照へ

単一メソッドの匿名クラスを簡潔なラムダ式とメソッド参照に置き換える。

✕ Anonymous class
button.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent event) {
        save(event);
    }
});
✓ Java 8+
button.addActionListener(this::save);
このコードに問題がありますか? お知らせください。
⚡

少ない定型コード

クラス宣言とオーバーライドに伴う定型コードを削減できます。

👁

優れた可読性

実行する操作に注意を集中できます。

🔒

引き続き型安全

コンパイラーが対象となる関数型インターフェースのシグネチャを検査します。

旧来のアプローチ
匿名クラス
モダンなアプローチ
メソッド参照
JDKバージョン
8
難易度
初級
匿名クラスからラムダ式とメソッド参照へ
利用可能

JDK 8(2014年3月)以降、利用可能

関数型インターフェースはラムダ式またはメソッド参照で実装できます。静的型付けと同じコールバック契約を維持しながら、匿名クラスに伴う定型コードを削減できます。