Анонимная имплементация интерфейса в kotlin

На Java этот трюк хорошо обкатан, IDE Android Studio по одному клику вставляет шаблон для реализации кода выбранного интерфейса. На kotlin это работает немного сложнее.

К примеру, нам требуется реализовать Runnable интерфейс для создания экземпляра класса Thread.

Вы пишите в IDE «Thread», открываете скобку и вам открывается подсказка:

И ожидается, что возможным параметром будет реализация интерфейса Runnable.

Длинный синтаксис реализации предусматривает, что вы используете токен object:

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

Переменная r нам тоже не нужна, если вы не используете её в других местах, потому можно ещё сильнее сократить запись:

Т.е. IDE знает, что мы можем здесь передать в качестве параметра экземпляр реализации интерфейса Runnable, потому нам не нужно указывать явно ни название интерфейса ни имя единственного метода, который мы реализуем. В конце мы тут же запускаем созданный поток.

Если бы требовалось передать параметры в этот метод, то запись бы выглядела так:

Подсказку от IDE с шаблонами реализации методов интерфейса получить также можно. Наберите:

object подкраситься красным, и если вы вызовите подсказку «ALT+insert», то там можно будет выбрать «имплементировать методы»:

Для функциональных интерфейсов это не очень полезно, я для прочих случаев удобно.

Написать комментарий

Мало букафф? Читайте есчо !

Цвет фона у компонента Button

Январь 16, 2025 г.

Компонент кнопка в android studio имеет огромное число цветовых настроек, связанных прежде всего с material design совместимостью. Поэтому установка цвета фона через атрибут - android:background не работает здесь. Попробуйте использовать другой ...

Читать

Пример реализации Swipe Gesture для любого view элемента

Январь 29, 2025 г.

Для списка есть класс ItemTouchHelper, который реализует свайпы для элементов списка, а хотелось бы получить реализацию этого жеста для любого элемента View. Как это должно работать Это должна быть довольно простая вещь, основанная на обработке ...

Читать

 

Комментарии к «Анонимная имплементация интерфейса в kotlin»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: