Можно ли создать новое поле у класса в extension функции

«Можно ли создать новое поле у класса в extension функции» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, нельзя добавить новые поля (хранимые свойства) в extension функции, так как extensions в Kotlin/Java работают на уровне компилятора и не модифицируют исходный класс. Extensions могут только добавлять новые функции или computed properties (с геттерами/сеттерами).

Пример computed property:

val String.hasDigits: Boolean  
    get() = any { it.isDigit() }  

Но если нужно хранить состояние, можно использовать делегаты или ассоциативные массивы (например, WeakHashMap).