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

Я хочу сделать расширение функции для класса внутри другого класса (для 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, например.