Лямбда-выражения пришли к нам с Java 8. Подробно о том, что это такое - можно почитать на хабре (https://habrahabr.ru/post/213805/ и https://habrahabr.ru/post/224593/). Также есть хорошая книга на русском (https://www.ozon.ru/context/detail/id/28001133/).
Мы можем использовать лямбда-выражения вместо реализации интерфейса с одним методом. Попробуем на небольшом примере обработчика кнопки. Обычно мы пишем его так:
button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { log("click " + v); } });
а с лямбдой то же самое можно написать так:
button.setOnClickListener(v -> log("click " + v));
Ушли ненужные строки, описывающие создание анонимного класса.
Подключение к проекту
Чтобы иметь возможность использовать лямбда, необходимо выполнить несколько шагов:
1) Скачать и использовать, как основной, JDK 8.
2) Добавить в gradle-файл проекта строки
buildscript { repositories { mavenCentral() } dependencies { classpath 'me.tatarka:gradle-retrolambda:3.2.3' } }
3) Добавить в gradle-файл app-модуля строки
apply plugin: 'me.tatarka.retrolambda' android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
После этого можно использовать лямбда-выражения в коде вашего проекта.
Присоединяйтесь к нам в Telegram:
- в канале StartAndroid публикуются ссылки на новые статьи с сайта startandroid.ru и интересные материалы с хабра, medium.com и т.п.
- в чатах решаем возникающие вопросы и проблемы по различным темам: Android, Compose, Kotlin, RxJava, Dagger, Тестирование, Performance
- ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня