我正在尝试处理基本列表,它的副本是为了比较用户更改副本后它们是否相同。 不知何故,我遇到了一个问题,我无法将这些列表分开,我尝试比较内存对象引用,它们似乎是分开的,转换 .toImmutableList() 也没有达到预期的效果。
有人知道这里发生了什么吗?
// list of enum class instances with 2 fields -> displayName : String, isSelected : Boolean = false
val baseCategories = baseFilters._categories.toImmutableList()
// mutable copy of the list
val copyCategories = baseCategories.toMutableList()
// logging out baseCategories list, results in empty list which is good
log(baseCategories.filter { it.isSelected })
// modifying copy
copyCategories.find { it.displayName == "Electronics" }?.isSelected = true
// somehow baseCategories gets changed
log(baseCategories.filter { it.isSelected })
// always false
log(baseCategories === copyCategories)
日志:
[]
[electronics]
false