【发布时间】:2011-06-07 03:57:09
【问题描述】:
我正在尝试遵循来自 Effective Java 的 Joshua Bloch 的类型安全异构容器模式,以 Class<T> 作为键创建对象容器 (MyGeneric<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 的容器中,他执行了一个安全施法 - 但就我而言,我看不出这是怎么可能的。
有人有什么想法吗?
干杯, 尼克。
【问题讨论】: