TGViewer
Android разработка Android разработка @android_its · 4.88K subscribers
Post #295 1.39K
💻 Своё расширение в Kotlin

⏩Можно ли организовать свое собственное расширение в Kotlin? Да, это можно сделать через Delegate:
class MyString {
fun myPrint(text: String) {
println(text)
}
}


⏩Есть класс MyString с методом myPrint(). Допустим нам надо сделать собственное расширение printRealExt() без использование встроенных в Kotlin возможностей:
fun MyString.printRealExt(text: String) {
println(text)
}


⏩Реализуем интерфейс и класс с нашим методом "расширения":
interface ExtensionPrint {
fun printExt(text: String)
}

class ExtensionPrintImpl : ExtensionPrint {
override fun printExt(text: String) {
println(text)
}
}


⏩А затем воспользовавшись Delegation делегируем этот метод:
class MyString : ExtensionPrint by ExtensionPrintImpl() {
fun myPrint(text: String) {
println(text)
}
}


⏩Синтаксис вызова из расширения и из делегата выглядит одинаково:
    val myString = MyString()
myString.printRealExt("Real ext")
myString.printExt("Text from ext")


⏩Таким же образом можно организовать множественное наследование в Kotlin:
interface OneClassInterface {
fun someOne()
}

class OneClassImpl : OneClassInterface {
override fun someOne() {
println("some One")
}
}

interface TwoClassInterface {
fun someTwo()
}

class TwoClassImpl : TwoClassInterface {
override fun someTwo() {
println("someTwo")
}
}

class DerivedClass : OneClassInterface by OneClassImpl(), TwoClassInterface by TwoClassImpl()


@android_its
  • 👍 7
  • ❤ 3
  • 🔥 1
More from @android_its
  1. Sep 24, 2026Kotlin 2.5.0-Beta1 вышел JetBrains выпустила первую бета-версию Kotlin 2.5.0. Главное: - L…
  2. Sep 23, 2026📱 Qwen представила Qwen Intelligence - набор ИИ-агентов для смартфонов. В основе три аген…
  3. Sep 16, 2026🚀 JetBrains обновила roadmap Kotlin: главный фокус - Multiplatform, Wasm и удобство разра…
  4. Aug 23, 2026✔️ Как работают SAM-conversions Single Abstract Method (SAM) интерфейсы — это интерфейсы т…
  5. Aug 23, 2026🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку Окружение решает больше, чем кажет…
  6. Aug 19, 2026✔️ Апдейт ChatGPT: изолированный контекст в Projects, тесты для проверки знаний и правки д…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →