Kotlin mutableMap在android中自动更改?

苏伦达

我在这样的viewModel中设置kotlin可变地图,

// In ViewModel
var mapData= mutableMapOf<Int, String>()

在我的片段中,我指的是以下地图,

//In fragment
lateinit var _mapData: MutableMap<Int, String>

// in oncreate View
_mapData[1] = "one"

当我运行以上代码时,这_mapData会自动更新为我的viewModel mapData我不要

我遇到真正问题的地方是以下代码,

// initiallizing 
if(!_mapData.contains(2)){
_mapData[2] = _mapData[1]
}

//doing some process to get the actual _mapData[2]

_mapData[2] = "Two"

运行上述代码后,我_mapData[1]也将更改为"Two"

这是什么行为,为什么会发生

xinaiz

不知道如何_mapData从中分配mapData,但是如果您只写:

_mapData = viewModel.mapData

然后两个变量都将引用存储到相同的精确地图对象。因此,如果您通过mapData引用更改了任何_mapData内容,则内容也会更改(因为它是同一对象)。

如果要在viewModel和fragment中具有单独的map实体,则应复制map:

_mapData = viewModel.mapData.toMutableMap()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

kotlin/javascript 或 kotlin/native 中的 MutableMap 是 LinkedHashMap 吗?

Kotlin在Android Studio中自动完成覆盖

计算 kotlin 中 MutableMap 中字符串的出现次数

Android MutableMap 初始化问题上的新手 Kotlin

HashMap如何在Kotlin中实现MutableMap接口?

Kotlin中的HashMap和MutableMap有什么区别

Android Kotlin中的Moshi-将ENUM作为MutableMap键在反序列化时转换为String

如何使用Kotlin在android中更改字体?

如何更改 kotlin 中 viewpager 自动滑动的默认速度?

Android自动执行方法Kotlin

在 Kotlin 中自动扩展 searchView

在Kotlin的Android Studio中自动生成getter和setter

Kotlin中的Android Parcelable

Android Studio中的Kotlin

Kotlin中的Android ViewModelProviderFactory

在Kotlin中更改循环索引

在Kotlin中ListPreference更改被忽略

如何自动生成Kotlin类名称以匹配Android Studio中的新Kotlin文件

Android Volley Kotlin:(可变)Map <(原始)任意?,(原始)任意?>!vs MutableMap <String,String>

在Kotlin中更改Android TabLayout中选项卡的大小

我想用Kotlin单击android中的Button后更改背景

如何通过kotlin代码在android中更改笔触颜色?

更改Android Kotlin中的默认FLAG_SECURE吐司消息

在 Kotlin 的 Android Studio 中更改应用程序标题颜色

在Android Studio中单击按钮更改TextView文本(Kotlin)

在 Kotlin 中更改 TextView 的文本时出错 - Android

如何从 kotlin 中数据类的构造函数初始化“MutableMap”?

Android Studio Kotlin自动完成符号

自动表达时的kotlin