为了账号安全,请及时绑定邮箱和手机立即绑定

Java映射的值受键的类型参数限制

Java映射的值受键的类型参数限制

有只小跳蛙 2019-08-19 15:30:39
Java映射的值受键的类型参数限制在Java中是否有一种方法可以使用映射,其中值的类型参数与键的类型参数相关联?我想写的内容如下:public class Foo {     // This declaration won't compile - what should it be?     private static Map<Class<T>, T> defaultValues;     // These two methods are just fine     public static <T> void setDefaultValue(Class<T> clazz, T value) {         defaultValues.put(clazz, value);     }     public static <T> T getDefaultValue(Class<T> clazz) {         return defaultValues.get(clazz);     }}也就是说,只要值的类型与Class对象的类型匹配,我就可以对Class对象存储任何默认值。我不明白为什么不允许这样做,因为我可以确保在设置/获取类型正确的值时。编辑:感谢cletus的回答。我实际上并不需要地图本身的类型参数,因为我可以确保获取/设置值的方法的一致性,即使它意味着使用一些稍微丑陋的演员表。
查看完整描述

3 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

不,你不能直接这样做。您需要编写一个包装类Map<Class, Object>来强制该Object将是instanceofClass。


查看完整回答
反对 回复 2019-08-19
  • 3 回答
  • 0 关注
  • 463 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信