расширение члена вне класса: использование неявного экземпляра получателя этого класса.
инимальный пример, который демонстрирует проблему:
abstract class Base {
abstract fun String.extension(x: Char)
}
class Derived : Base() {
override fun String.extension(x: Char) {
// Calling lots of methods on String, hence extension method
println("${first()} $length ${last()} ${firstOrNull { it == x }} ...")
}
}
Вызов метода расширения из Java тривиален:
Base o = new Derived();
o.extension("hello world", 'l');
Но я не могу понять, как это сделать на чистом Котлине. ниString
ниBase
кажется, естьextension
метод.