Map<String, String> fieldAttributes = new HashMap<String, String>();
fieldAttributes.put("a", "48");
fieldAttributes.put("b", "");
fieldAttributes.put("c", "4224");
现在我需要将Map<String, String>
投射到Map<Object, Object>
我该怎么做?我试过? extends Object
但不知道如何使用它。
答案 0 :(得分:6)
您可以使用
Map<Object, Object> properties = (Map) fieldAttributes;
编译器会给你一个适当的警告,但它会编译。
答案 1 :(得分:4)
你做不到。 Map<String, String>
不是Map<Object, Object>
。如果是的话,你可以做到
Map<String, String> map = new HashMap<String, String>();
Map<Object, Object> map2 = (Map<Object, Object>) map;
map2.put(Integer.valueOf(2), new Object());
会破坏仿制药带来的类型安全性。
因此,您确实必须使用原始地图,或使用Map<? extends Object, ? extends Object>
。
答案 2 :(得分:1)
Map<? extends Object, ? extends Object> genMap = fieldAttributes;
OR
Map<Object, Object> gMap = (Map)fieldAttributes;
答案 3 :(得分:0)
您可以使用Object
代替String
:
Map<Object, Object> fieldAttributes = new HashMap<Object, Object>();
fieldAttributes.put("a", "48");
fieldAttributes.put("b", "");
fieldAttributes.put("c", "4224");
在迭代Map
时,您可以使用Object
的{{1}}方法进行转换。