Java中的映射是通过键的类型参数来限制值的。
- 论坛
- Java中的映射是通过键的类型参数来限制值的。
30 浏览
Java中的映射是通过键的类型参数来限制值的。
在Java中有没有一种方法可以创建一个映射,其中值的类型参数与键的类型参数相关联?我想要实现的是类似下面的代码:
public class Foo { // 这个声明无法编译通过 - 应该是什么? private static Map, T> defaultValues; // 这两个方法没问题 public static void setDefaultValue(Class clazz, T value) { defaultValues.put(clazz, value); } public static T getDefaultValue(Class clazz) { return defaultValues.get(clazz); } }
也就是说,我可以将任何默认值存储在与Class对象关联的映射中,只要该值的类型与Class对象的类型匹配。我不明白为什么不能允许这样做,因为我可以确保在设置/获取值时类型是正确的。
编辑:感谢cletus的答案。实际上,我不需要在映射本身上使用类型参数,因为我可以确保get/set值的方法中的一致性,即使这意味着使用一些稍微丑陋的强制转换。