Retrolambda для Android

После трюков с 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Ваш комментарий будет опубликован после модерации