Lambda表达式
表达式允许我们把行为传到函数里。之前把行为传到函数里我们采用的是匿名内部类,该方法导致行为最重要的方法夹杂在中间,不够突出
lambda表达式取代了匿名内部类,取消了模板,允许程序猿用函数式风格编写代码,使代码可读性更高
格式
基本格式是:() -> {}
有下面三种具体表达:
(params) -> expression
(params) -> statement
(params) -> {statement}
使用 配置as 必须是JDK 1.8
打开项目(Project)的build.gradle,在dependencies节点添加
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
}
使用 Lambda表达式前后代码的变化
relativeLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
isCacles=false;
dialog.dismiss();
}
});
//使用Lambda
relativeLayout.setOnClickListener(view1 ->{
isCacles=false;
dialog.dismiss();});