Sobes.tech
Back to questions
Junior — Middle
73

Возможна ли автоматическая генерация конструктора без параметров для data class в Kotlin?

Companies where asked
RedLab

Answer from AI

sobes.tech AI

В Kotlin для data class автоматически генерируется конструктор, который принимает все свойства, объявленные в первичном конструкторе. Однако, если вы хотите иметь конструктор без параметров (конструктор по умолчанию), то он не создаётся автоматически, если в первичном конструкторе есть параметры без значений по умолчанию.

Чтобы получить конструктор без параметров, можно:

  • Задать значения по умолчанию для всех параметров первичного конструктора:
data class User(val name: String = "", val age: Int = 0)

Теперь можно создать объект User() без параметров.

  • Или добавить дополнительный конструктор без параметров вручную:
data class User(val name: String, val age: Int) {
    constructor() : this("", 0)
}

Таким образом, автоматическая генерация конструктора без параметров для data class возможна только при наличии значений по умолчанию для всех параметров.