После трюков с RxJava, RxAndroid и Retrolambda, которыми пользуются множество разработчиков, появился легкий и быстрый способ использования Retrolambda в Android-проектах.
4 простых шага:
Скачиваем и устанавливаем JDK8
Добавьте следующую зависимость в ваш проект в файл build.gradle на уровне main:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'me.tatarka:gradle-retrolambda:3.2.3'
}
}
Далее, добавьте эти плагины к вашему приложению в build.gradle
apply plugin: 'com.android.application' // or apply plugin: 'java' apply plugin: 'me.tatarka.retrolambda'
И наконец, добавьте эти строки в build.gradle, чтобы сообщить IDE новый уровень языка:
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
Вот и все, теперь можно пользоваться более короткой записью.
Почувствуйте разницу в сравнении с обычным вызовом на примере слушателя:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
log("Clicked");
}
});
Теперь код стал гораздо лаконичнее:
button.setOnClickListener(v -> log("Clicked"));
Данный код несовместим с Retrolambda
Преобразование может прерваться ошибкой, если библиотека содержит байт-код, который несовместим с retrolambda (что бывает довольно редко). Это можно исправить добавив данный код в файл build.gradle, :
retrolambda {
jvmArgs '-noverify'
}
Оригинал: Retrolambda on Android
