Java 8のラムダ式が良くわからない

※当サイトではアフィリエイト広告を利用しています

Java8から導入された新要素である”ラムダ式”が、まだよくわかっていないので学習しておきます。

ラムダ式とは

ラムダ式とは、抽象メソッドを1つだけ持つインタフェースのインスタンスを、簡潔に生成する構文のことです。
(これを関数型インターフェースと言います)

つまり、関数型インターフェースに関する処理を簡単に書く方法ってことですかね。
 

 

ラムダ式の使用例

代表的な関数型インターフェースとして「Runnable」があるので、これを例にこれまでの書き方と比較をしてみます。

 

これまで(Java7まで)の処理

public class SubThread implements Runnable {
    public void run() {
        System.out.println("Hello World");
    }
}
public class Main {
    public static void main(String[] args) {
        SubThread sub = new SubThread();
        Thread thread = new Thread(sub);
        thread.start();
    }
}

 

ラムダ式を使った処理

public class Main {
    public static void main(String[] args) {
        Runnable r = () -> System.out.println("Hello World");
        Thread thread2 = new Thread(r);
        thread2.start();
    }
}

抽象メソッドは1つだけなんだから、いちいち宣言とかしなくて良くね?って発想で考えれば良いですかね。

コードはスッキリしましたが、私自身まだ使うには慣れが必要そうです。
ただ少なくともこれからラムダ式で書かれたソースコードは増えてくると思うので、読めるようにはならなくては・・・という心境です。

コメント