Я пытаюсь создать общий тип, который хранит карту самих версий, которые были созданы для последующего использования. Фактически, это одноэлементный шаблон, где есть один экземпляр для каждого типа. Код, который у меня есть до сих пор:
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);
}
}
Однако я все еще не уверен, что я "делаю это правильно". Мне кажется, что я могу указать, что коллекция (Class → FieldBinder). Тот факт, что IDE предупреждает о возвращении, только усиливает эту мысль.
Есть ли лучший способ справиться с этим?
Примечание: Этот вопрос кажется очень тесно связанным, но достаточно далеко, что я не могу понять, как применять информацию в нем к моей собственной проблеме.