我正在使用哈希映射的递归树,特别是哈希映射映射,其中 Object 是对另一个哈希映射的引用,依此类推。这将通过递归算法传递:
foo(String filename, Hashmap<String, Object> map)
{
//some stuff here
for (Entry<String, Object> entry : map.entrySet())
{
//type warning that must be suppressed
foo(entry.getKey(), (HashMap<String, Object>)entry.getValue());
}
}
我肯定知道Object
是类型Hashmap<String, Object>
,但很恼火我必须使用@SuppressWarnings("unchecked")
.
assert(/*entry.getValue() is of type HashMap<String, Object>*/)
我会对执行 a或在未执行时抛出异常的解决方案感到满意。为了编译类型安全,我沿着泛型路线走下去,如果我抑制警告,那么它就达不到目的。
谢谢你的评论,ksb