我有一张地图
Map<String, String[]> newMetaData = new LinkedHashMap();
我用这样的数据填充:
newMetaData.put(
((String) elm.get("companyName")).trim(),
new String[]{
this.storeFile( "logo", (String) elm.get("logoLink") ),
this.storeFile( "profile", (String) elm.get("companyProfile") ),
this.storeFile( "action", (String) elm.get("drash") ),
(String) elm.get("fwtografies")
}
);
StoreFile是一个返回字符串的函数。我将此地图另存为
Storage.getInstance().writeObject("MetaData", newMetaData);
稍后在代码中,我将上面的地图检索为:
Map<String, String[]> metaData = (Map)Storage.getInstance().readObject("MetaData");
但不是获取
感谢您的帮助
答案 0 :(得分:0)
Java中的泛型是语法糖。它们在很大程度上被编译器擦除,并被代号One忽略。这个:
Map<String, String[]> newMetaData = new LinkedHashMap<>();
就生成的代码而言,与此等效:
Map newMetaData = new LinkedHashMap();
有一些警告,因为当您使用诸如set / put之类的方法时,第一个版本还会添加强制类型转换,在某些情况下可能触发类强制转换异常。事实是,它也可以反向运行,因此应该可以正常工作:
Map<String, String[]> metaData = (Map<String, String[]>)Storage.getInstance().readObject("MetaData");