> Каким ключевым словом обозначаются параметры конструктора в data class Kotlin, если они используются только в init блоке (Kotlin, Android)
Уровень: middle · Роль: mobile · Категория: Технические вопросы
Компании: Dogma
Стек: Kotlin, Android
> Пример ответа
В Kotlin для параметров конструктора data class, которые используются только в блоке init и не являются свойствами класса, применяется ключевое слово private. Однако в data class все параметры первичного конструктора по умолчанию становятся свойствами (полями) класса. Если нужно, чтобы параметр не стал свойством и использовался исключительно для инициализации, его следует объявить в теле класса как обычный параметр функции или конструктора, но не в первичном конструкторе data class.
Пример корректного подхода:
data class User(val name: String) { init { // Параметр name - свойство, доступно в init println("Name length: ${name.length}") } }
Если же нужно скрыть параметр от внешнего использования и использовать его только в init, можно применить модификатор private к свойству:
data class User(private val name: String) { init { println("Name length: ${name.length}") } }
Но строго говоря, в data class нельзя объявить параметр, который не станет свойством. Для таких случаев лучше использовать обычный класс.
> Похожие задачи по mobile
Как остановить корутину и гарантированно отменить ее в Kotlin
Как работают final и static в Kotlin и Java
Почему нельзя создать экземпляр класса Nothing в Kotlin
Есть ли аннотации для улучшения интеропа Kotlin и Java, например JVMStatic
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью