我有这样的data class
:
data class BookObject(
val description: String?,
val owningCompanyData: OwningCompanyData?,
) {
var id: String? = null
var createdAt: Instant? = null
var createdBy: String? = null
var modifiedAt: Instant? = null
fun update(command: CreateOrUpdateBookObjectCommand): BookObject =
this.copy(
description = command.description,
owningCompanyData = command.owningCompanyData
)
}
当我使用update
函数处理一个字段完全填充的对象时,我得到一个id
、createdAt
、createdBy
、modifiedAt
字段为空的对象(它们变成等于null
),但是为什么会发生这种情况?为什么这些字段会丢失它们的值?
Kotlin的文件说:
使用copy()函数来复制对象,允许您修改它的一些属性,同时保持其余的不变。
1条答案
按热度按时间7kqas0il1#
答案其实就在你的链接里,就在“复制”之前的段落里。
编译器仅将主构造函数内定义的属性用于自动生成的函数。