💻 Создание анонимного экземпляра интерфейса в Kotlin



Если сразу к сути, то для создания экземпляра анонимного интерфейса в Kotlin применяется объектное выражение. Определите интерфейс непосредственно при инициализации переменной следующим образом:

val myInterfaceInstance = object : MyInterface {

override fun myFunction() {

// Ваш код здесь

}

}



myInterfaceInstance.myFunction()


В данном примере переменной myInterfaceInstance мы присваиваем объект, используя ключевое слово object :

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





Создание экземпляра SAM-интерфейса, используя лямбду



Интерфейс с одним абстрактным методом (SAM) в Kotlin может быть представлен лямбдой. Котлин предлагает более лаконичную запись для интерфейсов с единственным методом:

fun interface MySAMInterface {

fun myAction()

}



val myInterfaceInstance = MySAMInterface {

println("Смотрите, мама, я пишу код без использования рук!")

}



myInterfaceInstance.myAction()




Здесь для сокращения записи при создании анонимного экземпляра используется лямбда-выражение. Не забывайте, что SAM-преобразования доступны лишь для интерфейсов, имеющих только один абстрактный метод.



📎 Читать подробнее



@android_its