Kotlin 中的深度复制
Deep Copying in Kotlin
我来自 Swift
和 Python
背景,我有一个问题,我希望得到一个简单的答案。
我有一个名为 Event
的自定义 class,我想对其进行深度复制。从相关问题(如果我理解正确的话) - 在 Kotlin 中没有内置的方法来做到这一点。有人建议在 Kotlin 中使用 Java 的函数,但由于我不知道 Java,如果可能的话,我更愿意以其他方式使用。
一种方法是 Event
class:
fun copy() : Event {
val event = Event()
event.property1 = this.property1
event.property2 = this.property2
// and same goes for all other properties
return event
}
}
有没有更优雅、更直观的方法?
提前致谢!
您可以将具有内置 copy
方法的 data class
与不可变对象结合使用(因此深拷贝与浅拷贝相同)。如果您不能使用不可变对象,您只能使用您在问题中提出的替代方案,那么没有其他方法可以做到这一点。您可以记住的另一件事是 Kotlin 有自己的持久数据结构here,这是解决这个问题的好方法!
我来自 Swift
和 Python
背景,我有一个问题,我希望得到一个简单的答案。
我有一个名为 Event
的自定义 class,我想对其进行深度复制。从相关问题(如果我理解正确的话) - 在 Kotlin 中没有内置的方法来做到这一点。有人建议在 Kotlin 中使用 Java 的函数,但由于我不知道 Java,如果可能的话,我更愿意以其他方式使用。
一种方法是 Event
class:
fun copy() : Event {
val event = Event()
event.property1 = this.property1
event.property2 = this.property2
// and same goes for all other properties
return event
}
}
有没有更优雅、更直观的方法?
提前致谢!
您可以将具有内置 copy
方法的 data class
与不可变对象结合使用(因此深拷贝与浅拷贝相同)。如果您不能使用不可变对象,您只能使用您在问题中提出的替代方案,那么没有其他方法可以做到这一点。您可以记住的另一件事是 Kotlin 有自己的持久数据结构here,这是解决这个问题的好方法!