首先应用场景吧:似乎只能针对有单个抽象方法的接口,比如 Runnable,OnclickListener之类的,经常在 android中使用的setOnclikListener(new View.OnClickListener{
public void click(View v){
//todo
}
});
这种,换成lambda之后可以简写为setOnclickListener(v->{
//todo(如果只有一行,{}也可以省略)
});
这个就是简单的例子。
其他匿名接口也可以这么写。至于怎么在android studio中支持,需要在项目的build.gradle 配置classpath 'me.tatarka:gradle-retrolambda:3.2.0'
以及module的build.gradle 中配置
apply plugin: 'me.tatarka.retrolambda'
android 标签下添加
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
即可
网友评论