Откуда распространяются классы данных Kotlin? Могу ли я увеличить их?

Я работал с class data class Kotlin, и я думал о том, можно ли расширить некоторый класс (который содержит функциональность copy например), чтобы увеличить все class data es?

Можно ли вообще расширить class data ?

Классы данных Kotlin не наследуются ни от одного класса (кроме Any / java.lang.Object на JVM). Насколько я знаю, нет способа изменить поведение, например, copy глобально для всех классов данных.

Методы, используемые для копирования, деструктурирования и т. Д., Генерируются индивидуально для каждого класса данных. (См. Документы )

Вы не можете изменить, как компилятор Kotlin генерирует байт-код для классов данных, поэтому вы не можете изменить способ работы с copy , например. Однако то, что вы можете сделать с недавнего обновления, заключается в том, что ваши классы данных наследуются от других классов, поэтому вы можете создать абстрактный базовый класс, который вы используете для всех ваших классов данных, чтобы предоставить им дополнительную функциональность.