【Java開発】第27回 Lambda

Java入門講座

はじめに

皆さん。こんにちは!

DreamHanksの254cmです。

今回はLambdaについて説明していきます。

Java記事のまとめはこちらです。

前回の記事は【Java開発】第26回 Objectクラスです。

 

Lambdaとは?

ラムダ(Lambda)とはJava8から導入された技術であり、メソッドを単純に表現する方法です。

 

ラムダで作られたメソッドはインターフェースの引数として渡せます。

 

インターフェースは渡されたラムダメソッドを抽象メソッドの実装として使います。

 

〇ラムダの特徴

 

ラムダを利用するとインターフェースの実装クラスを作らなくても抽象メソッドを自由に実装することができます。

 

つまり、プログラム作成時の手間仕事が省けます。

 

そして、ラムダは既存のメソッドより作成方が非常に簡単です。

 

ラムダの長所と短所

〇ラムダの長所

  1. インターフェースの実装クラスを作成しなくても構いません。

→プログラムの作成にかかる手間が省けます。

2.コードの作成が単純なので可読性が高いです。

 

〇ラムダの短所

1.再使用が不可能です。

2.再起の使用には不適合です。

3.使い過ぎるとむしろ可読性が減らします。

 

ラムダの書き方

ラムダも一種のメソッドであるので、引数を書いても省略しても構いません。

 

そして、実行する処理が一つの行である場合、括弧{}を省略することができます。

 

処理が一つのreturnで構成されている場合には括弧を省略できません。

 

ラムダの使用サンプル

サンプル1

ラムダを使用せず、インターフェースの抽象メソッドを実装すると

 

いちいち実装クラスを作成しなければなりません。

 

サンプル2

上記のサンプルのようにラムダを利用するとサンプル1より可読性が高いソースコードを作成できます。

 

ラムダを使うためにはインタフェースを関数型のインタフェースで作る必要があります。

 

関数型のインタフェースは「@FunctionalInterface 」アノテーションが付与されているインタフェースであり、

 

抽象メソッドを一つしか宣言できないインタフェースです。

 

サンプル1のように一つのファイルの中にインタフェースと実装クラスを作成した場合には

 

実装クラスの処理と作成の意図をパットみて把握することができますが、

 

普段にはインタフェースと実装クラスは各javaファイルに作成されるので、

 

処理と作成の意図を把握することが難しいです。

 

しかし、ラムダを使用する場合には実装クラスがいらなく、

 

抽象メソッドの実装がインタフェースが使われるところで成り立つので可読性が高いです。

 

Javaはjava.util.functionパッケージを通じていろんな状況でも使える関数型のインタフェースを

 

すでに定義して提供しています。

 

java.util.funcionパッケージに関してはこちらを参考すると嬉しいです。

 

終わりに

今回の記事は以上になります。

次回はStream APIを学びましょう。

ご覧いただきありがとうございます。

 

 

 

コメント