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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Январь 29, 2025 г.

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

Читать

Как изменить цвет фона приложения

Январь 14, 2025 г.

Когда вы проектируете макет активити в android studio вы можете у корневого контейнера задать цвет фона выбрав соответствующее значение атрибута android:background. Как в примере ниже - черный фон [crayon-67b98f983da13275396886/] Это будет ...

Читать

 

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

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



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