[Android] lambda ラムダ式とは




lambda

 
Java8の機能の1つで関数型プログラミングを行うために導入され、Android Studio 2.4 辺りから使えるようになりました。

何がメリットかと言うと、匿名クラスの記述を簡略化できることでしょう。
逆に簡略化されて入門者は理解しずらいとも思います

ただ関数型プログラミングはバグを減らすために有効とされているので避けて通れないところです。
 

 

lambda変換

 
ラムダ式は、関数型インタフェースのメソッドの、1つの抽象メソッドしか持たないインターフェースに使用できます。

アロー演算子「->」を使い (引数,引数,…) -> {何かの処理} という書き方ができるもの

具体的に Button の実装で見て見ると、


このように記述すると最近のAndroid Studioではwarningが出てきます

Android Studio 上でこれにマウスをかざすとRecomendationが現れます

1x1.trans - [Android] lambda ラムダ式とは

new View.OnClickListener()をlambdaに置き換えられるというので
「Alt+Shitf+Enter」を実行するとlambda式に変更されました。
あるいは「Replace with kambda」をクリック

 

省略手順

 
setOnClickListener()は引数にOnClickListenerというインターフェースをとります

OnClickListenerは、onClick()という抽象メソッドが1つだけ定義されたインターフェースであり、onClick()が必ず呼ばれるため省略できるわけです。


アロー演算子「->」を使って簡略化すると、


更に、引数の型も省略でき、引数が1つであれば()も省略できるので


といった記述になります。

ここまでは statement lambda ですが、更に
expression lambda にすることもできます。


2行になってしまいました。

Java関連ではもっと詳しく解説されています
 
 

This beginner Java tutorial describes fundamentals of programming in the Java programming language

 

シェアする

  • このエントリーをはてなブックマークに追加

フォローする