gpt4 book ai didi

object - 如何在不更改 Kotlin 中的基础对象的情况下将一个对象复制到另一个对象?

转载 作者:IT老高 更新时间:2023-10-28 13:43:28 26 4
gpt4 key购买 nike

这是我的代码:

var header1: Record? = null
var header2: Record? = null

header2 = header1
header2.name = "new_name"

header1.name 也会改变!

最佳答案

您只是将相同的对象(相同的内存块)分配给另一个变量。您需要以某种方式创建一个新实例并设置所有字段。

header2 = Record()
header2.name = header1.name

但是在 Kotlin 中,如果 Record 类是 Data class ,Kotlin 会为你创建一个复制方法。

data class Record(val name: String, ...)
...
header2 = header1.copy()

而复制方法允许你覆盖你需要覆盖的字段。

header2 = header1.copy(name = "new_name")

关于object - 如何在不更改 Kotlin 中的基础对象的情况下将一个对象复制到另一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50237384/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com