Java 7以降でJava 8 Lambda式を使用

1195 ワード

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