Kotlin documentation只描述了在访问Java和enum类中的克隆.在后一种情况下,克隆只是抛出一个异常.

So, how would I / should I clone arbitrary Kotlin object?

Should I just use clone() as in Java?

推荐答案

对于data class,您可以使用编译器生成的copy() method.请注意,它将执行浅层复制.

To create a copy of a collection, use the toList() or toSet() methods, depending on the collection type you need. These methods always create a new copy of a collection; they also perform a shallow copy.

对于其他类别,没有特定于Kotlin的克隆解决方案.如果.clone()适合你的需求,你可以使用它,如果不适合,你可以构建一个不同的解决方案.

Kotlin相关问答推荐

Kotlin-删除按钮周围的空格

使用数据存储首选项Kotlin Jetpack Compose

在Kotlin中将String转换为T

如何接受任何派生类KClass

Kotlin扩展函数未调用Hibernate/JPA中的重写函数

为什么 Kotlin 中没有 init 块的注释

扩展属性委托给实例属性

generic 类实例列表 - 调用采用 T 的函数

Rabin-Karp字符串匹配的实现(Rolling hash)

kotest 更改环境变量

异常传播如何在 CoroutineScope.async 上工作?

在粘贴时将 java 转换为 kotlin

如何在 Kotlin 中使用 volatile

Kotlin 是如何编译的?

Kotlin 类的调用方法

无法为 retrofit2.Call 调用无参数构造函数

如何在使用 Gradle 的 AppEngine 项目中使用 Kotlin

Kotlin not nullable值可以为null吗?

在kotlin中初始化类变量的正确位置是什么

Kotlin - 具有私有构造函数的类的工厂函数