Lambda定义
Lambda表达式是java8中新引入的特色功能。Lambda表达式本质上是一种匿名方法,它既没有方法名,也既没有访问修饰符和返回类型,使用它来编写代码将会更加简洁,也更加易读。
Android中使用Lamdda表达式的配置
需要在app/build.gradle中添加如下配置:
android{
...
defaultConfig{
...
jackOptions.enabled=true
}
compileOptions{
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
...
}
通过代码实例分析Lambda使用规则
- 代码实例1
new Thread(new Runable(){
@Override
public void run(){
}
}).start();
//使用Lambda表达式写法
new Thread(() ->{
}).start();
说明:只有一个待实现方法的接口,可以使用Lambda表达式
- 代码实例2
public interface MyListener{
String doSomething(String a,int b);
}
MyListener listener=new MyListener(String a,String b){
String result=a+b;
return result;
}
//使用Lambda表达式写法
MyListener listener=(String a,String b) ->{
String result=a+b;
return result;
}
说明:Lambda表达式创建MyListener接口的匿名实现方法,方法中的参数直接写在括号中就可以。
- 代码实例3
public interface MyListener{
String doSomething(String a,int b);
}
MyListener listener=new MyListener(String a,String b){
String result=a+b;
return result;
}
//使用Lambda表达式写法
MyListener listener=( a, b) ->{
String result=a+b;
return result;
}
说明:除了实例2中的写法,java还可以自动推断出参数a是String类型,参数b是int类型,这样参数类型都可以不用写了。这是两个参数,当只有一个参数的时候,括号也可以去掉。
Android实际开发中的应用
接口的实现
上面实例中已有提到。
按钮点击事件
//传统按钮点击事件
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
}
});
//使用Lambda表达式之后
button.setOnClickListener(v ->{
});
总结
以上是Lambda表达式的基本使用,是不是感觉不错,精简。大家看完快去使用吧