вCoding

Android lambda

Последние обновления Oracle имеют множество полезных функций. Одна из них это «лямбда выражения» (lambda expressions). К большому сожалению, Android не поддерживает Java 8. Но уже сейчас можно использовать лямбды в своих android приложениях с помощью замечательной библиотеки retrolambda.

Давайте посмотрим как это сделать для использования android lambda:

1. Переходим по ссылке на проект retrolambda

2. Копируем следующий код в свой gadle файл

НО вместо этого можно использовать просто gradle plugin:

Вот так просто настроить можно с версии gradle 2.1 (подробнее тут https://plugins.gradle.org/plugin/me.tatarka.retrolambda )

Не забудьте тег с плагином добавить в начало файла.

Далее выставляем в настройках проекта путь до Java 8

s2

Синхронизируемся, проверяем код:

Получаем запрос об изменении уровня языка

s1

Подтверждаем и синхронизируем  gradle.

Вот в принципе и все! Теперь вы можете использовать лямбда выражения в ваших проектах на Android.

На всякий случай оставляю код gradle:

На странице проекта есть описание и короткое видео, демонстрирующее, как работает преобразование.

Вкратце, Retrolambda анализирует байт-код скомпилированных классов, ищет вызовы лямбда-выражений, ссылок на методы и прочие нововведения и заменяет их на те аналоги, которые уже присутствуют в указанной версии Java. То есть, лямбды заменятся анонимными классами, multi-catch (если мы компилируем для Java 6) заменится на несколько одинарных вызовов catch и т.д.

Это даёт нам массу безграничных возможностей. Теперь мы можем писать меньше кода, а на этапе компиляции он автоматически адаптируется под наши нужды. 

В последующих статья постараемся рассмотреть соединение RetroLambda и RxJava и разберем вопрос связанный с реактивным программировнием.

Похожие посты

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