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

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

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

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

Retrolambda为Java 5、6和7提供了Lambda表达式的反向移植。

从Retrolambda文档中:

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

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

如果要在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
  }
}

翻译自: https://www.javacodegeeks.com/2015/03/using-java-8-lambda-expressions-in-java-7-or-older.html

你可能感兴趣的:(在Java 7或更早版本中使用Java 8 Lambda表达式)