<String, Object>
的映射表。我需要它来保存任意对象,但有时我需要将其中一些对象转换,所以我会做一些类似于以下的操作:HashMap<String, Object> map = new HashMap<String, Object>();
Object foo = map.get("bar");
if (foo instanceof HashMap) {
((HashMap<String, Integer>) foo).put("a", 5);
}
这会发出警告
Stuff.java:10: warning: [unchecked] unchecked cast
found : java.lang.Object
required: java.util.HashMap<java.lang.String,java.lang.Integer>
((HashMap<String, Integer>) foo).put("a", 5);
我怀疑这与泛型的使用有关。我可以使用@SupressWarnings("unchecked")来消除错误,但我想知道是否有更好的方法。或者说,我收到警告意味着我应该重新考虑我的做法。我应该做些什么,还是只使用@SupressWarnings?