Flutter List' is not a

2021-10-12  本文已影响0人  苍眸之宝宝

报错:

Unhandled Exception: type 'List<dynamic>' is not a subtype of type 'List<Map<String, dynamic>>'

报错代码:

// value反编码后为List<dynamic>
List<Map<String, dynamic>> list = json.jsonDecode(value as String);

报错原因:

无法直接用子类型去声明父类变量,或者无法直接用子集类型去声明父集类型;代码中 value 反编码后为的变量 list 的类型为 List<dynamic> ,而 Map<String, dynamic> 是 dynamic 的一种情况,即 dynamic 包含 Map<String, dynamic> 。

解决方法:

// value反编码后为List<dynamic>
List<Map<String, dynamic>> list = json.jsonDecode(value as String).cast<Map<String, dynamic>>();

cast为List类中的方法,它可以传入一个泛型,是该泛型的类型正常返回,不是的会抛出异常。

上一篇 下一篇

猜你喜欢

热点阅读