2

这很奇怪。在官方文档库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?

4

0 回答 0