Android的lambda表達式依賴 'me.tatarka:gradle-retrolambda:3.7.0'

Java 8的一個大亮點是引入Lambda表達式,使用它設計的代碼會更加簡潔 ,它是一種函數式推導語言,能夠大量減少匿名內部類那種冗餘的代碼。我們在Android開發中,經常會使用到大量的監聽設置以及異步回調等場景。這時,就可以使用Lambda表達式來去除冗餘代碼。這裏我們在Android Studio中進行使用說明。

 

1、將Lambda引入android studio

2、使用示例:

 

1、將 Lambda 引入android studio

在 app > build.gradle 中引入當前最新的插件'me.tatarka:gradle-retrolambda:3.7.0'

dependencies {
    //gradle-retrolambda配置
    implementation 'me.tatarka:gradle-retrolambda:3.7.0'
}

同時在 android{} 中配置 compileOptions ,如下

android {
    compileOptions {
        targetCompatibility 1.8
        sourceCompatibility 1.8
    }
}

注意:Android studio 的版本需要在3.0以上,jdk需要達到1.8

 

2、使用示例:

下面將進行  Lambda 使用演示,分爲普通寫法和 Lambda 寫法,讓大家能夠明顯的感受到區別

示例1、點擊事件

普通寫法

asdf.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        T.showLong(getMContext(),"123");
    }
});

Lambda 寫法

asdf.setOnClickListener(v -> T.showLong(getMContext(),"123"));

說明:在導入 Lambda 後,可以使用  ->  (減號 + 英文狀態下的右尖括號) 來省略大部分匿名內部類的代碼,其中 v 是點擊事件中的參數 (View v) 中的 v ,如果有多個參數,就用括號括起來就行了,如:(View v,String s, int  i),可以寫成(v,s,i)-> X(代碼)

 

示例2、Runnable

普通寫法

new Thread(new Runnable() {
    @Override
    public void run() {
        L.e("---", "4562");
    }
}).start();

Lambda 寫法

new Thread( ()-> L.e("---", "4561")).start();

 

普通寫法

Runnable runnable1 = new Runnable() {
    @Override
    public void run() {
        L.e("---", "7891");
    }
};
runnable1.run();

Lambda 寫法

Runnable runnable2 = () -> L.e("---", "7892");
runnable2.run();

說明:如果匿名內部方法沒有參數,則可以使用括號代替。

從以上代碼可以看出,使用Lambda 寫法可以減少很多冗餘代碼,使代碼一目瞭然(瞭解Lambda 寫法)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章