我在Map(Object,Object)类型上有一个类,其中我知道键都是字符串。如何轻松将其转换为Map(String,Object)?
具体来说,该对象来自Firestore查询
Firestore.instance.collection('schedule').document('nfl-2018').snapshots().data.data
答案 0 :(得分:4)
有多种方法可以转换或包装地图。
主要的两个是Map.cast
method和Map.from
constructor。
Map<Object, Object> original = ...;
Map<String, Object> wrapped = original.cast<String, Object>();
Map<String, Object> newMap = Map<String, Object>.from(first);
由wrapped
创建的Map.cast
地图是原始地图的包装。如果原始地图改变了,wrapped
也会改变。它很容易使用,但是在每次访问时都要进行额外的类型检查(因为包装程序会在运行时检查类型,并且每次都必须检查类型,因为原始映射可能已更改)。
由Map.from
创建的地图是一个新地图,这意味着将复制原始地图中的所有数据并在创建地图时进行类型检查,但之后便是未连接到原始地图的单独地图。>
答案 1 :(得分:3)