Как убрать поле из генерации в data class

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

Ответ

В Kotlin можно исключить поле из генерации equals(), hashCode(), toString() и copy() в data class, пометив его как val или var вне первичного конструктора.

Пример:

data class User(val name: String, val age: Int) {
    var nickname: String? = null // не войдет в toString/equals/hashCode
}

Либо использовать аннотацию @Transient (если класс сериализуемый), но это нестандартно для обычных data class.

Также можно явно переопределить нужные методы, если требуется гибкость.