【发布时间】:2015-04-01 14:40:45
【问题描述】:
我正在编写一些 Java 代码,但我发现我做不到:
LinkedList<HashMap<String,Object>> errorManagement = new LinkedList<HashMap<String, Object>>();
HashMap<String,Object> i = new HashMap<String,Object>();
errorManagement.add(i.clone()); <-- impossible to add the hash map here
如果我想将哈希映射添加到我的链接列表中,我会遇到一些错误...
我通过这种方式发现了这一点:
HashMap<String,Object> tokenInfo = new HashMap<String,Object>();
LinkedList<Object> errorManagement = new LinkedList<Object>();
errorManagement.add(tokenInfo.clone()); <-- everything working like a charm !
我没有任何错误。 有人可以解释一下为什么吗?又有什么区别呢?
附: :我应该说,在有人问我之前,当我将任何内容添加到我的链接列表(对于第一个示例)时,会引发错误!
【问题讨论】:
-
你检查过
clone的返回类型了吗? -
如果您粘贴异常堆栈跟踪会很有帮助。另外:可以写
HashMap<String,Object> i = new HashMap<>();...不用重复类型信息。 -
@EddyG 这是编译器错误。
-
@MarkoTopolnik 好吧,那么您一定使用的是 Java 1.6;钻石算子是在 1.7 中引入的;而且我刚刚发布的那条线路非常好。
-
@EddyG OP 的错误是编译器错误。
标签: java linked-list hashmap