Android|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, inti),可以写成(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|Android的lambda表达式依赖 'me.tatarka:gradle-retrolambda:3.7.0'】

    推荐阅读