Lambda表达式是在JDK 8中开始支持的一种函数式推导语言,能够大量减少匿名内部类那种冗余的代码。在Android中,可以大量使用在设置监听,设置异步回调等场景。
目前Android开发已经渐渐到从Eclipse 的ADT迁移到了Android Studio,但是Android Studio目前的版本还没有直接支持Lambda表达式的支持,需要插件支持,当然,JDK版本也必须使用JDK 8 或者以上(当然过些时间会有更高版本的JDK)。
1.引入retrolambda插件:
在Project的build.gradle中添加
1
|
apply plugin:
'me.tatarka.retrolambda'
|
2. 设置编译选项(可能也可以不写)
在Project的build.gradle的android节点中添加如下代码
1
2
3
4
|
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
|
3. 引入retrolambda的类路径,在Module:app的build.gradle中的buildscript->dependencies节点中添加如下代码
1
|
classpath
'me.tatarka:gradle-retrolambda:3.2.0'
|
4. 对build.gradle进行build
5.编写测试代码,简单写法如下
1
2
3
4
5
6
|
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView)findViewById(R.id.text);
textView.setOnClickListener( v -> Toast.makeText(getApplicationContext(),
"Lambda"
, Toast.LENGTH_LONG).show());
}
|
6.运行查看是否正常