在Java 7或更早版本中使用Java 8 Lambda表达式

我认为没有人会拒绝Java 8引入的Lambda表达式的有用性。但是,许多项目都停留在Java 7甚至旧版本上。 升级可能既耗时又昂贵。 如果第三方组件与Java 8不兼容,则可能根本无法升级。

除此之外,整个Android平台都停留在Java 6和7上。

尽管如此,Lambda表达式仍然有希望!

为Java 5、6和7提供了Lambda表达式的移植。 从Retrolambda文档中:

Retrolambda使您可以在Java 7或更低版本上运行带有lambda表达式和方法引用的Java 8代码。 它通过转换Java 8编译的字节码来做到这一点,以便它可以在Java 7运行时上运行。 转换后,它们只是一堆普通的.class文件,没有任何其他运行时依赖项。

要运行Retrolambda,可以使用或插件。

如果要在Android上使用Lambda表达式,则只需将以下行添加到gradle构建文件中:

<project> /build.gradle :

buildscript {
  dependencies {
    classpath me.tatarka:gradle-retrolambda:2.4.0    
  }
}

<project> /app/build.gradle :

apply plugin: com.android.application

// Apply retro lambda plugin after the Android plugin
apply plugin: retrolambda 

android {
  compileOptions {
    // change compatibility to Java 8 to get Java 8 IDE support  
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}
翻译自:
我认为没有人会拒绝Java 8引入的Lambda表达式的有用性。但是,许多项目都停留在Java 7甚至旧版本上。 升级可能既耗时又昂贵。 如果第三方组件与Java 8不兼容,则可能根本无法升级。 除此之外,整个Android平台都停留在Java 6和7上。 尽管如此,Lambda表达式仍然有希望! 为Java 5、6和7提供了Lambda表达式的移植。 从Retrolambda文档中: Retrolambda使您可以在Java 7或更低版本上运行带有lambda表达式和方法引用的Java 8代码。 它通过转换Java 8编译的字节码来做到这一点,以便它可以在Java 7运行时上运行。 转换后,它们只是一堆普通的.class文件,没有任何其他运行时依赖项。 要运行Retrolambda,可以使用或插件。 如果要在Android上使用Lambda表达式,则只需将以下行添加到gradle构建文件中: /build.gradle : buildscript {   dependencies {     classpath me.tatarka:gradle-retrolambda:2.4.0       } } /app/build.gradle : apply plugin: com.android.application // Apply retro lambda plugin after the Android plugin apply plugin: retrolambda  android {   compileOptions {     // change compatibility to Java 8 to get Java 8 IDE support     sourceCompatibility JavaVersion.VERSION_1_8     targetCompatibility JavaVersion.VERSION_1_8   } } 翻译自:
经验分享 程序员 微信小程序 职场和发展