这是我的代码:
var header1: Record? = null
var header2: Record? = null
header2 = header1
header2.name = "new_name"
but header1.name
也有变化!
您只是将相同的对象(相同的内存块)分配给另一个变量。您需要以某种方式创建一个新实例并设置所有字段。
header2 = Record()
header2.name = header1.name
然而在 Kotlin 中,如果 Record 类是数据类 https://kotlinlang.org/docs/reference/data-classes.html,Kotlin 会为您创建一个复制方法。
data class Record(val name: String, ...)
...
header2 = header1.copy()
并且复制方法允许您覆盖您需要覆盖的字段。
header2 = header1.copy(name = "new_name")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)