我想制作一个具有以下界面的 map 类容器:
public <T> Thing<T> get(Class<T> clazz);
public <T> void put(Class<T> clazz, Thing<T> thing);
有趣的是 T
每个 Class<T>
中的 s -> Thing<T>
对是一样的T
, 但容器应该能够容纳许多不同类型的对。最初我尝试了一个 (Hash) Map .但是,例如,
Map<Class<T>, Thing<T>>
不对,因为那时T
会是一样的 T
对于该 map 中的所有对。当然,
Map<Class<?>, Thing<?>>
可以,但是我没有类型安全保证所以当我 get(String.class)
, 我不能确定我得到了 Thing<String>
实例返回。
是否有明显的方法来实现我正在寻找的类型安全?
最佳答案
map 本身并不能保证这一点,但如果您仅通过上述方法访问它,您将获得所需的安全性。
关于java - 从 Class<T> 到 Thing<T> 的类型安全映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3003526/