这很奇怪。在官方文档库retrolambda中,我们可以将其放入自己的gradle中:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'me.tatarka:gradle-retrolambda:3.7.0'
}
}
// Required because retrolambda is on maven central
repositories {
mavenCentral()
}
apply plugin: 'com.android.application' //or apply plugin: 'java'
apply plugin: 'me.tatarka.retrolambda'
但现在当我试图用 lambda 写一些东西时:
btnLogin.setOnClickListener(view -> btnLogin.setVisibility(View.INVISIBLE));
我从 AndroidStudio 得到:
Lambda expression are not supported at language level 1.7
当然我可以在我的构建中设置
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
但这是没有意义的,现在有了 1.8 我不需要 RetroLambda :)
所以问题是如何在 Java 1.7 中使用 lambda?