Androidの匿名クラスにランダを置換する


Lambadaは11番目のギリシャ文字で、大文字Λ、小文字です。λ,えっと、問題がありました。Lambada表現はJava 8の新特性の一つです。
  • Lambada表現
  • 関数式インターフェース
  • ストリームのAPI
  • デフォルトの方法
  • 新しいDate
  • Time API
  • Lambda表現は匿名クラスに取って代わられ、テンプレートをキャンセルし、関数スタイルでコードを作成することができます。
    最近RxJavaに接触したので、Lambadaに出会ってすぐ好きになりました。
    本稿では、LambadaがAndroidにおいて匿名クラスに代わる部分的な使用場面を紹介します。
    AndroidではLambandを使用します。
    gradle-retrollamda
    A gradle plugin for getting java lambada support in java 6,7 and and roid
    Androidの中で私達はこのプラグインを使う必要があります。構成通りに配置すればいいです。
    実戦で使う
    Lambadaは匿名のクラスに取って代わることができるので、まず匿名のトレーナーを選びに来ました。
    ここでまず簡単にLambanの文法について説明します。「-」{}どう見てもこれは何の鬼だと思いますか?分かりません
    焦らないで、いくつかの例を見ます。
    待ち受けイベントの設定
    Androidの中で私達はモニターを設置して普通はこのように書きます。
    
    mFab.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
        doSomething();
       }
      });
    
    このようにASは匿名のnew View.OnClikListener()がLambadaに取って代わることができると提示します。

    ヒント
    Lambankではどう書けばいいですか?
    mFab.set OnClickListener(v->doSomething();
    見ましたか
    全体の匿名内部クラスはv->doSomethingによって代替された。
    とても簡単ですか?
    Ps:本例での`v`は、onClick伝達のパラメータvを表しています。パラメータは省略できませんが、任意に名前をつけてもいいです。
    Runnableを実現
    Androidの中でスレッドを立てるのは普通です。
    
    new Thread(new Runnable() {
       @Override
       public void run() {
        doSomething();
       }
      }).start();
    
    ランバー表現を使うと、このように書くことができます。
    new Thread()->doSomething().start();
    また、実装化されたRunnableメンバー変数もこのように書くことができます。
    Runnable runnable=()->doSomething();
    この二つの例を見たら、ラムダンに興味がありましたか?引き続き勉強しますので、興味がある人は引き続き注意してください。