Лямбда-выражения пришли к нам с 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
- ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня
