用于在 Java 中存储通用类型对象的异构容器
我试图遵循Joshua Bloch的Typesafe hetereogene容器模式,从 Effective Java 创建一个对象容器 () 作为键。MyGeneric<T>
Class<T>
public class MyClass {
private Map<Class<?>, MyGeneric<?>> myContainer =
new HashMap<Class<?>, MyGeneric<?>>();
public <T> void addToContainer(Class<T> class, MyGeneric<T> thing) {
myContainer.put(class, thing);
}
public <T> MyGeneric<T> getFromContainer(Class<T> class) {
return (MyGeneric<T>)(myContainer.get(klass));
}
}
问题是在getFromContainer中,我必须执行未经检查的投射。在乔希·布洛赫(Josh Bloch)的容器中,他执行了一个安全的演员 - 但在我的情况下,我看不出这是怎么可能的。
有人有什么想法吗?
干杯,尼克。