具有相关类型的泛型键/值的泛型映射
2022-09-03 13:38:26
我正在尝试创建一个泛型类型,该类型保留已创建的版本本身的映射以供以后使用。实际上,它是一种单例模式,其中每种类型都有一个实例。到目前为止,我的代码是:
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 语句发出警告这一事实只会强化这一想法。
有没有更好的方法来解决这个问题?
注意:这个问题似乎密切相关,但距离足够远,以至于我无法弄清楚如何将其中的信息应用于我自己的问题。