AndroidでJava8のLambdaの記法が利用できるRetrolambdaですが、
少し前にJakeWhartonさんという神がforkプロジェクトを作って話題になりました。
これにより、Jakeさんのプロジェクトで1500-2000のメソッド数を減らすことに成功したようです。
https://github.com/JakeWharton/retrolambda/tree/8c565e0f22a1d182398c98e805345dc2d92c3f01
Published a Retrolambda fork which reduces 1 to 3 generated methods per lambda/method ref. Saved us 1500-2000 total. https://t.co/4qJYIdgzIi
— Jake Wharton (@JakeWharton) 2016年4月27日
このforkされたプロジェクトは現在本流にマージされていて、そのバージョンが2.3.0のようです。
https://github.com/orfjackal/retrolambda
Retrolambda 2.3.0 has been released with all the changes from my fork. Upgrade today! https://t.co/TrNOnM7kWT
— Jake Wharton (@JakeWharton) 2016年4月30日
おそらく皆さんがRetrolambdaを利用する場合Gradle Retrolambda Pluginというプラグインを利用して導入を行っていると思います。
https://github.com/evant/gradle-retrolambda
2016/05/07現在のstableのGradle Retrolambda Plugin3.2.5ではRetrolambda2.1.0がデフォルトで利用されるようなので、まだその変更が入っていないようです
./gradlew app:dependencies
...
retrolambdaConfig
\--- net.orfjackal.retrolambda:retrolambda:2.1.0
...
ここを参考に2.3.0を使うようにしましょう
モジュールのdependenciesで以下のように追加してあげれば良いようです。
dependencies {
retrolambdaConfig 'net.orfjackal.retrolambda:retrolambda:2.3.0'
}
一応Gradle Retrolambda Pluginに対してデフォルトのRetrolambdaのバージョンを変更するプルリクエストが出ているようなので、そのマージを待ってもいいかもしれません。(結局その場合もGradle Retrolambda Pluginのバージョンを上げなくてはいけないので、2.3.0以上はGradle Retrolambda Pluginのバージョン変更しないと使われないかもしれません。)
https://github.com/evant/gradle-retrolambda/pull/183