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 写法)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Android,依赖)