Почему должно быть хотя бы одно поле в конструкторе data class

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

Ответ

Data class в Kotlin автоматически генерирует equals(), hashCode(), toString(), copy() и методы компонентов. Если в data class нет полей, эти методы теряют смысл, так как нечего сравнивать, хэшировать или копировать.

Пример:

data class Empty()  // Ошибка: Data class must have at least one primary constructor parameter

Без полей data class становится бессмысленным — он не хранит данных, ради которых создан. В таком случае лучше использовать обычный class или object.