Ответ
Отсутствие полей в конструкторе data class сделает его бесполезным, так как основные функции data-классов генерируются только для свойств, объявленных в первичном конструкторе:
- Не будут сгенерированы
equals(),hashCode(),toString() - Не будет
componentN()функций для деструктуризации - Не будет
copy()функции
Пример:
data class Empty() // Бесполезный data-класс
val a = Empty()
val b = Empty()
println(a == b) // true (сравниваются ссылки, не содержимое)
Такой класс будет вести себя как обычный класс, теряя все преимущества data-класса.