在Java中,是否可以创建类与其类的实例的类型安全的映射?
我想创建一个映射,该映射使用类作为键来返回该类的实例。像这样:
<T> Map< Class<T>, T > instanceMap = new HashMap< Class<T>, T > ();
instanceMap.put( Boolean.class, Boolean.TRUE );
instanceMap.put( String.class, "asdf" );
instanceMap.put( Integer.class, 11 );
Boolean b = instanceMap.get( Boolean.class );
Integer i = instanceMap.get( Integer.class );
String s = instanceMap.get( String.class );
这可能吗?我有一种感觉,不,它不是因为我无法指出它应该是一个泛型类型,而不是一个名为“T”的类。它在某种程度上感觉像“高阶泛型”。T
编辑:我知道我可以尝试扩展Map并实现我自己的包装器等,但我特别要求仅使用Java的通用支持来执行此操作。我对这个想法更感兴趣,而不是这个特殊情况。
编辑2:如下所述,这是问题的重复(或更具体地说是子案例):具有受key类型参数限制的值的Java映射。如果我能够找到如此雄辩的措辞,我可能会找到那个答案,而不是发布这个。