Видео: Лямбда-выражения с RxJava в Android 2025
Иногда, если вы открываете код в редакторе Android Studio и наведите указатель мыши на определенные слова, вы получите интересный сюрприз. Android Studio сообщает, что вы можете заменить анонимный внутренний класс выражением лямбда.
Хорошо. Что такое лямбда-выражение? Во-первых, lambda - это буква в греческом алфавите, а выражение лямбда-выражения происходит из статей, написанных в 1930-х годах математикой Алонсо-Церкви.
В 2013 году Oracle выпустила Java 8, добавив лямбда-выражения на язык Java. И в 2016 году Google выпустил функции Java 8 для разработчиков Android.
Что такое лямбда-выражение? A lambda expression - это краткое описание объявления интерфейса, содержащего только один метод. Например, анонимный
OnClickListener
может иметь только один метод, а именно метод
onClick
. Таким образом, вы можете заменить этот анонимный
OnClickListener
выражением лямбда.
Если вы ответите на сообщение, нажав Alt + Enter, Android Studio предложит вам заменить на Lambda. Если вы примете эту опцию, Android Studio превратит ваш код в этот материал.
пакет com. allmycode. a11_05;
import android. Операционные системы. Bundle;
import android. поддержка. v7. приложение. AppCompatActivity;
import android. виджет. Кнопка;
import android. виджет. TextView;
открытый класс MainActivity расширяет AppCompatActivity {
кнопка;
TextView textView;
@Override
protected void onCreate (Bundle savedInstanceState) {
супер. OnCreate (savedInstanceState);
setContentView (R. Layout. Activity_main);
кнопка = (кнопка) findViewById (кнопка идентификатора); Кнопка
. setOnClickListener (view -> textView. setText (R. string. you_clicked) );
textView = (TextView) findViewById (R. Id. TextView);
}
}
В этом коде используется лямбда-выражение. Изображение иллюстрирует переход от класса, который реализует интерфейс с одним методом для выражения лямбда.
Обратите внимание на легкую роль слова
view
. Когда вы объявляете метод
onClick
, вы даете методу параметр типа
View
, даже если в инструкциях внутри метода этот параметр не используется. Точно так же, когда вы создаете лямбда-выражение для метода
onClick
, вы предикате символ
->
с именем параметра, даже если вы не используете это имя параметра для слева от символа
->
.
Чтобы использовать лямбда-выражения, вы должны удовлетворять определенным требованиям. Например, вы должны скомпилировать свой код с Java 8 или выше. Ваша версия Android Studio должна быть 2. 1 или выше. И ваш проект
. gradle
должен содержать следующий код:
android {
…
defaultConfig {
…
jackOptions {
enabled true
}
}
…
}
Лямбда-выражение может содержать более одного параметра слева от символа
->
. Если это так, вы должны заключить все параметры в круглые скобки и разделять параметры друг от друга запятыми. Например, выражение
(price1, price2) -> price1 + price2
является действительным лямбда-выражением.
Если вам нравится лямбда-выражения, вы можете сделать свой код более читабельным. То, что начиналось с десяти строк кода, может легко стать лишь частью строки.
