Kotlin数据类从哪里扩展而来? 我可以扩充它们吗?
我一直在摆弄Kotlin data
class
并且考虑是否可以增加一些类(例如包含copy
功能)来扩充所有data
class
?
有没有可能扩充data
class
呢?
Kotlin的数据类不能从任何类继承(除了JVM上的Any
/ java.lang.Object
)。 据我所知,没有办法修改所有数据类的全局copy
行为。
用于复制,解构等的方法是针对每个数据类别单独生成的。 (请参阅文档 )
你不能改变Kotlin编译器如何为数据类生成字节码,所以你不能改变copy
功能的工作方式。 但是,最近一次更新之后,您可以做的是让您的数据类从其他类继承,因此您可以创建一个抽象基类,用于所有数据类,以便为它们提供附加功能。