Retrolambda для Android

java-logo-lambda

После трюков с RxJava, RxAndroid и Retrolambda, которыми пользуются множество разработчиков, появился легкий и быстрый способ использования Retrolambda в Android-проектах.

4 простых шага:




  1. Скачиваем и устанавливаем JDK8
  2. Добавьте следующую зависимость в ваш проект в файл build.gradle на уровне main:
    buildscript {
      repositories {
         mavenCentral()
      }
    
      dependencies {
         classpath 'me.tatarka:gradle-retrolambda:3.2.3'
      }
    }
  3. Далее, добавьте эти плагины к вашему приложению в build.gradle

    apply plugin: 'com.android.application' // or apply plugin: 'java'
    apply plugin: 'me.tatarka.retrolambda'
    
  4. И наконец, добавьте эти строки в 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

Комментарии:

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

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