You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dart中如何向Map添加动态值?新增键值对类型不匹配如何解决?

问题原因

你遇到的报错是Dart的强类型自动推断机制导致的:
初始化temp变量时,receiver字段下的所有值均为Map类型,Dart会自动将temp['receiver']推断为Map<String, Map<String, String>>类型,后续尝试给该Map插入String类型的值时就会触发类型不匹配错误。

解决方案

在初始化时显式声明Map的value类型为dynamic,关闭自动类型推断即可,示例代码如下:

// 方式1:显式指定receiver的value类型为dynamic
Map temp = {
  "receiver": <String, dynamic>{
    "Bank": {"account": '123'},
  }
};

// 方式2:直接指定整个temp的value类型为dynamic
// Map<String, dynamic> temp = {
//   "receiver": {
//     "Bank": {"account": '123'},
//   }
// };

if(temp['receiver']['school'] == null){
  temp['receiver']['school'] = '12';
}

修改后即可正常给receiver下新增不同类型的字段,符合你期望的最终Map结构要求。


内容的提问来源于stack exchange,提问作者IamVariable

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 03:00:01