如何声明Map的通用Map

问题描述 投票:0回答:1

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

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

这样可以用作:

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

问题是我无法弄清楚如何声明'Class'和'ClassInstance'的泛型类型。

java generics
1个回答
1
投票
Map<Class<?>, Map<String, Object>> map;

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

Map<String, Object> valueMap = new HashMap<>();
valueMap.put("Foo", new Type());
map.put(Type.class, valueMap);
© www.soinside.com 2019 - 2024. All rights reserved.