Kotlin 科特林的深度复制
我来自Kotlin 科特林的深度复制,kotlin,deep-copy,Kotlin,Deep Copy,我来自Swift和Python的背景,我有一个问题,我希望得到一个简单的答案 我有一个名为Event的自定义类,希望对其进行深度复制。从相关的问题(如果我理解正确的话)-在Kotlin中没有内在的方法来做到这一点。有人建议在Kotlin中使用Java函数,但由于我不懂Java,如果可能的话,我更喜欢用另一种方式 一种方法是在事件类中: fun copy() : Event { val event = Event() event.property1 = this.property1
Swift
和Python
的背景,我有一个问题,我希望得到一个简单的答案
我有一个名为Event
的自定义类,希望对其进行深度复制。从相关的问题(如果我理解正确的话)-在Kotlin中没有内在的方法来做到这一点。有人建议在Kotlin中使用Java函数,但由于我不懂Java,如果可能的话,我更喜欢用另一种方式
一种方法是在事件
类中:
fun copy() : Event {
val event = Event()
event.property1 = this.property1
event.property2 = this.property2
// and same goes for all other properties
return event
}
}
有没有更优雅、更直观的方法
提前谢谢 您可以将具有内置
copy
方法的数据类
与不可变对象结合使用(因此深拷贝与浅拷贝相同)。如果您不能使用不可变对象,那么您就只能使用问题中提出的备选方案,没有其他方法可以这样做。您可以记住的另一件事是Kotlin有自己的持久数据结构,这是解决此问题的一个很好的方法 嗨,亚当,谢谢你的回答。是的,我需要使用可变对象,但是非常感谢您提到这个库-我不知道它,并且一定会研究它!我已经使用这个库有一段时间了,它太棒了!