pre:写在前面
概念:Java8中的lambda表达式,Lambda表达式本质上是一种匿名方法,既没有方法名,也没有访问修饰符合返回值类型,但是它可以让编写更加直接,凡是只有一个待实现方法的接口,都可以使用lambda表达式的写法
studio 版本:
3.1.3
一、添加依赖:
1.在根目录 build.gradle 中添加
dependencies {
...
classpath 'me.tatarka:gradle-retrolambda:3.2.5'
}
2.在app下 build.gradle 中添加
android {
...
compileOptions{
sourceCompatibility org.gradle.api.JavaVersion.VERSION_1_8
targetCompatibility org.gradle.api.JavaVersion.VERSION_1_8
}
}
二、首先是一些常规使用
//(1)线程
new Thread(
//参数,然后指向实现
(参数 ) -> { 实现 }
).start();
//(2)按钮
Button btn = (Button)findViewById(R.id.btn);
//方法参数可自动推断
btn.setOnClickListener((v)->{});
三、也可以自己写一个做测试
(1)先写一个接口类
package com.example.lambdatest;
public interface MyListener {
//在内部定义一个需要在外边实现的接口
String doSomething(String a , int b);
}
(2.1)在活动中单个实现
//)自定义单个接口去实现
MyListener listener = (a,b) ->{
String result = a + b;
return result;
};
(2.2)把接口类作为参数来实现
public void hello(MyListener listener){
String a = "hello world";
int b = 1024;
String result = listener.doSomething(a,b);
Log.d(TAG, result);
}
hello((a,b) -> {
String result = a +b;
return result;
});