嵌套字符串HashMaps

时间:2014-02-19 22:57:07

标签: java map hashmap

我知道我可以选择制作一个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,但我仍然不理解它。

谢谢!

2 个答案:

答案 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,它可以为您提供这些选项作为自动修复。