提问者:小点点

HashMap<Integer, String>存储String[](艾特莱森Confluence)


所以我正在为艾特莱森Confluence开发一个插件,在我的配置页面控制器中,我有一个类型为HashMap的HashMap


共1个答案

匿名用户

如果您将hashmap创建为HashMap

例如:

    HashMap map = new HashMap<Integer, String>();
    map.put(1, new String[]{"1", "2"});
    System.out.println(map.get(1));

此代码执行时没有任何错误。

所以我认为发生的事情是,您将其存储为HashMap引用,它被视为HashMap

但是如果您使用HashMap对同一地图有另一个引用

    HashMap map = new HashMap<Integer, String>();
    map.put(1, new String[]{"1", "2"});
    System.out.println(map.get(1));
    System.out.println("got here");
    HashMap<Integer, String> otherRef = (HashMap<Integer, String>) map;
    System.out.println(otherRef.get(1)); //<-ClassCastException exception here