这是我的代码:
var header1: Record? = null
var header2: Record? = null
header2 = header1
header2.name = "new_name"
but header1.name
changes too!
这是我的代码:
var header1: Record? = null
var header2: Record? = null
header2 = header1
header2.name = "new_name"
but header1.name
changes too!
You are just assigning the same object (same chunk of memory) to another variable. You need to somehow create a new instance and set all fields.
header2 = Record()
header2.name = header1.name
However in Kotlin, if the Record class was Data class, Kotlin would create a copy method for you.
data class Record(val name: String, ...)
...
header2 = header1.copy()
复制方法允许您覆盖需要覆盖的字段.
header2 = header1.copy(name = "new_name")