Android 无法识别Kotlin复制函数

Android 无法识别Kotlin复制函数,android,kotlin,Android,Kotlin,我正在尝试创建对象列表的副本。我遇到的问题是,当我更改新副本中的项目时,旧列表也会更改。 我理解这种情况是因为我向列表中添加了对象引用。我需要克隆新列表中的对象。但当我尝试这样做时,复制功能无法识别。这是我的密码: val newList = oldList.map { it.copy() } 对于副本,它表示未解析引用。还有其他方法吗?如果您的对象类只是类ObjectName,尝试用数据类ObjectName替换旧列表中的对象是否定义为数据类?如果它是一个类型,但不是像密封类那样的实现,就会

我正在尝试创建对象列表的副本。我遇到的问题是,当我更改新副本中的项目时,旧列表也会更改。 我理解这种情况是因为我向列表中添加了对象引用。我需要克隆新列表中的对象。但当我尝试这样做时,复制功能无法识别。这是我的密码:

val newList = oldList.map { it.copy() }

对于副本,它表示未解析引用。还有其他方法吗?

如果您的对象类只是
类ObjectName
,尝试用
数据类ObjectName

替换
旧列表中的对象是否定义为
数据类
?如果
它是一个类型,但不是像密封类那样的实现,就会发生这种情况,按铃?是的,这很有用。但我不明白为什么?这是否意味着如果我想复制,我必须使用数据类?因为编译器会自动从主构造函数中声明的所有属性派生出许多成员。您可以在这里了解这一点:数据类免费提供了一个
copy()
函数,这是使用它们的原因之一(您甚至可以在复制时更改某些属性,如
dog.copy(name=“bonzo”)
。否则,您必须编写自己的复制逻辑-Kotlin没有克隆功能。人们建议您做的一件事是将对象序列化为JSON并返回!Wild