我正在使用一个哈希映射的递归树,具体来说是 Hashmap map,其中 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>*/)
或在不是这种类型时抛出异常来满足我的需求。我选择了泛型路线以实现编译时类型安全,如果我忽略了警告,那就失去了这个目的。感谢您的评论, ksb