Sad*_*ife 8 object duplicates kotlin
这是我的代码:
var header1: Record? = null
var header2: Record? = null
header2 = header1
header2.name = "new_name"
Run Code Online (Sandbox Code Playgroud)
但也有header1.name
变化!
Jos*_*cik 16
您只是将同一个对象(相同的内存块)分配给另一个变量.您需要以某种方式创建新实例并设置所有字段.
header2 = Record()
header2.name = header1.name
Run Code Online (Sandbox Code Playgroud)
但是在Kotlin中,如果Record类是Data类,Kotlin会为你创建一个复制方法.
data class Record(val name: String, ...)
...
header2 = header1.copy()
Run Code Online (Sandbox Code Playgroud)
copy方法允许您覆盖需要覆盖的字段.
header2 = header1.copy(name = "new_name")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5504 次 |
最近记录: |