Kotlin 中的深度复制

Deep Copying in Kotlin

我来自 SwiftPython 背景,我有一个问题,我希望得到一个简单的答案。

我有一个名为 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,这是解决这个问题的好方法!