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'】
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量