расширение функции для класса в другом классе

Я хочу сделать расширение функции для класса внутри другого класса (для String в ModelAndView , а не для внутреннего), но не нашел способ сделать это без наследования классов. Это вообще возможно?

Пример расширения класса:

 class MyModelAndView : ModelAndView() { infix fun String.to(value: Any?) { addObject(this, value) } } 

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

 class X { fun String.ext() = println("extension on $this called") fun useExtension() { val text: String = "myText" text.ext() } } 

Вы можете использовать это расширение внутри класса, как показано в useExtension , а также в контексте этого класса, который, например, может использоваться with :

 with(x) { "abc".ext() } 

Это не рекомендуется делать, хотя это имеет смысл при написании DSL, например.

Intereting Posts
RxJava2 Опубликовать Как получить ссылку на пользовательские идентификаторы в значениях / ids.xml Делегирование недвижимости, измененное изменчивой картой Неразрешенная ссылка Котлин: дженерики и дисперсия Kotlin KFunction reflection – получить значения параметров Обработчик аннотации Java / Kotlin: получить тип аннотированного поля / свойства Встроенная функция не может получить доступ к непубличным API: @PublishedApi vs @Suppress vs @JvmSynthetic Kotlin и новый ActivityTestRule: @Rule должен быть общедоступным Не удалось найти классы Котлина в функциональном модуле из другого модуля Переопределить свойство интерфейса с параметром конструктора с другим именем Android Kotlin Realm Правильный способ запроса + вернуть неуправляемые элементы в Bg Thread MyBatis с неизменяемыми классами данных в Котлине Как передать только один параметр функции, когда он ожидает два? Kotlin: доступ к вложенному классу enum из java