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 :
/app/build.gradle :
翻訳:https://www.javacodegeeks.com/2015/03/using-java-8-lambda-expressions-in-java-7-or-older.html
このほか、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