如何解决未经检查的投射警告?
Eclipse给我一个以下形式的警告:
类型安全:未经检查的从对象到哈希映射的转换
这是从对API的调用,我无法控制哪个返回Object:
HashMap<String, String> getItems(javax.servlet.http.HttpSession session) {
HashMap<String, String> theHash = (HashMap<String, String>)session.getAttribute("attributeKey");
return theHash;
}
如果可能的话,我想避免使用 Eclipse 警告,因为从理论上讲,它们至少表明了潜在的代码问题。不过,我还没有找到一个好方法来消除这个。我可以将所涉及的单行提取到方法本身并添加到该方法中,从而限制了具有忽略警告的代码块的影响。还有更好的选择吗?我不想在 Eclipse 中关闭这些警告。@SuppressWarnings("unchecked")
在我编写代码之前,它更简单,但仍然引发了警告:
HashMap getItems(javax.servlet.http.HttpSession session) {
HashMap theHash = (HashMap)session.getAttribute("attributeKey");
return theHash;
}
当您尝试使用哈希值时,问题在其他地方,您会收到警告:
HashMap items = getItems(session);
items.put("this", "that");
Type safety: The method put(Object, Object) belongs to the raw type HashMap. References to generic type HashMap<K,V> should be parameterized.