我知道我可以选择制作一个POJO对象来存储它。但是,我试图在嵌套的HashMap中执行此操作。每当我做以下操作时,我都会收到类型安全警告。
Map<String, Map<String, String>> map = new HashMap<String, Map<String, String>>();
map.put("fund_cde", new HashMap(){{put("ABC", "ABC is not valid message.");}});
如果我像这样设置嵌套的HashMaps类型:
map.put("fund_cde", new HashMap<String, String>(){{put("ABC", "ABC is not valid message");}});
我最终得到了这个警告:
serializable类不声明long
类型的静态最终serialVersionUID字段有关正确方法的建议吗? 我看了How to put/get values into/from Nested HashMap,但我仍然不理解它。
谢谢!
答案 0 :(得分:0)
如果您愿意可以使用,还有另一种方法可以实现这一点,因为我也尝试了不同的方式也发出警告。您可以使用此
Map<String,String> map1=new HashMap<String,String>();
map1.put("ABC", "XYZ");
Map<String ,Object> map=new HashMap<String,Object>();
map.put("axz", map1);
答案 1 :(得分:-1)
如果你真的想取消警告。要么包含版本ID,请执行以下操作:
map.put("fund_cde", new HashMap(){
private static final long serialVersionUID = 1L;
{put("ABC", "ABC is not valid message.");}
});
或将@SuppressWarnings(“serial”)注释添加到方法中。如果您使用像eclipse这样的IDE,它可以为您提供这些选项作为自动修复。