@Neonoviiwolf
Flutter developer

Как понять такой код на Java c лямбда?

Доброго
Есть фрагмент, в нём много CheckedTextView. В фрагменте
implements View.OnClickListener

чтобы сделать на все CheckedTextView слушатель
Так вот
checked.setOnClickListener(this::onClick);
или
checked.setOnClickListener(this);

вроде на выходе одно и тоже, а в чём разница?
  • Вопрос задан
  • 108 просмотров
Пригласить эксперта
Ответы на вопрос 2
@WaterSmith
Android-разработчик. Java, Kotlin
Разница в том, что при использовании
checked.setOnClickListener(this::onClick);
фрагмент может не имплементировать View.OnClickListener, потому что слушателем является не он, а анонимный класс, сгенерированный лямбдой. Если же фрагмент у вас всё равно имплементирует View.OnClickListener, то лямбда совсем не к месту, и избыточна.
Ответ написан
Комментировать
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
Разница в том, что в первом случае ещё дополнительный анонимный класс создается.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы