如何声明地图的通用地图

时间:2018-02-07 18:30:50

标签: java generics

如何声明这样的Map而不是Object我有特定的类型:

Map<Class, Map<String, ClassInstance>> map;

这样可以用作:

Map<String, new Type()) valueMap = new HashMap();
map.put(Type.class, valueMap);

问题是我无法弄清楚如何声明两种类型的通用类型&#39; Class&#39;和&#39; ClassInstance&#39;。

1 个答案:

答案 0 :(得分:1)

Map<Class<?>, Map<String, Object>> map;

您无法静态强制Object属于给定类型。这是您的代码强制执行的。

Map<String, Object> valueMap = new HashMap<>();
valueMap.put("Foo", new Type());
map.put(Type.class, valueMap);