在android studio 中使用gradle插件retrolambda,需要jdk8以上。
第一步:build.gradle(project)文件中加入classpath ‘me.tatarka:gradle-retrolambda:3.2.5’和mavenCentral() ,如下:
buildscript{
dependencies {
classpath 'me.tatarka:gradle-retrolambda:3.2.5'
}
}
allprojects {
repositories {
jcenter()
}
repositories {
mavenCentral() //retrolambda在maven central中
}
}
第二步:build.gradle(module)文件中加入:(注意:Android Studio 3.0 已经支持 Java 8 了,不需要第三方库来支持,需要去掉 retrolambda 库。因此studio3.0以上的可以省略此步骤)
apply plugin: 'me.tatarka.retrolambda'
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'io.reactivex:rxjava:1.0.14'
compile 'io.reactivex:rxandroid:1.0.1'
}
最后点击重新编译,就可以使用lambda啦!
例子:
使用前:
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.d("onClick", "onClick");
}
});
使用后:
button.setOnClickListener(view->Log.d("onClick", "onClick"));