【发布时间】:2010-02-05 15:40:21
【问题描述】:
我正在尝试创建一个泛型类型,该类型保留已创建供以后使用的自身版本的映射。实际上,这是一种单例模式,其中每种类型都有一个实例。我到目前为止的代码是:
public class FieldBinder<T> {
static final Map<Class<? extends Object>,FieldBinder<? extends Object>> instanceMap =
new HashMap<Class<? extends Object>,FieldBinder<? extends Object>>();
private FieldBinder() {}
synchronized public static <V extends Object> FieldBinder<V> getInstance(Class<V> klass) {
if(!instanceMap.containsKey(klass)) {
instanceMap.put(klass, new FieldBinder<V>());
}
return (FieldBinder<V>)instanceMap.get(klass);
}
}
但是,我仍然不确定自己是否“做对了”。感觉我应该能够指定集合是(类-> FieldBinder)。 IDE 对 return 语句发出警告的事实只会强化这种想法。
有没有更好的方法来处理这个问题?
注意:This question 似乎密切相关,但距离很远,以至于我无法弄清楚如何将其中的信息应用于我自己的问题。
【问题讨论】:
标签: java generics collections