Kotlin数据类从哪里延伸?我可以扩充它们吗?

问题描述:

我一直在摆弄Kotlin dataclass es,我在考虑是否有可能增加一些类(例如包含copy的功能)以增加所有dataclass es?Kotlin数据类从哪里延伸?我可以扩充它们吗?

有没有可能扩充dataclass es?

Kotlin的数据类不会从任何类继承(除了JVM上的Any/java.lang.Object)。据我所知,没有办法改变例如所有数据类全局为copy

用于复制,解构等的方法分别为每个数据类生成。 (请参阅docs

您无法更改Kotlin编译器如何为数据类生成字节码,因此您无法更改例如copy的功能。然而,自最近更新以来,您可以做的是让您的数据类从其他类继承,因此您可以创建一个抽象基类,用于所有数据类,以便为它们提供附加功能。