目前Android只有在jack版本才有原生支持lambda,为了在java1.6也能使用上lambda表达式,我们可以采用第三方插件。
- 在project 根目录下的build.gradle中添加依赖,这会使用retrolambda来编译Java代码
buildscript {
dependencies {
classpath 'me.tatarka:gradle-retrolambda:3.1.0'
}
应用插件声明:apply plugin:'me.tatarka.retrolambda'
-
加入compileOptions,这会让IDE使用用JAVA8语法解析
compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
-
指定将源码编译的级别,,使用下列代码,会将代码编译到兼容1.6的字节码格式
retrolambda { javaVersion JavaVersion.VERSION_1_6 }
-
使用最简单的点击事件尝试一下。
v.setOnClickListener(v1 -> Toast.makeText(getActivity(), "clicked", Toast.LENGTH_LONG).show());