Daha sonra kullanmak üzere oluşturulmuş kendi sürümlerinin bir haritasını bulunduran genel bir tür oluşturmaya çalışıyorum. Etkili olarak, tür başına bir örneğinin bulunduğu bir tekil kalıptır. Bugüne kadar sahip kodu:İlgili türlerle genel anahtar/değerler Genel Haritası
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);
}
}
Ancak, ben hala "Doğru yapıyor" ediyorum emin değilim. Koleksiyonun (Sınıf -> FieldBinder) olduğunu belirtmem gerekiyormuş gibi geliyor. IDE'nin geri dönüş bildirimi konusunda uyardığı gerçeği bu düşünceyi pekiştiriyor.
Bunu işlemenin daha iyi bir yolu var mı?
Not: This question çok yakından ilişkilidir, ancak bu bilgileri kendi başıma nasıl uygulayacağımı anlayamadığım kadar uzaktır.
Söylediklerimi anladığımı varsayarsak, o zaman yaptığım şey bu değil. İstediğim şey, derleyiciye "Bu," > "dan 'FieldBinder >' 'dan bir haritanın her ikisinin de aynı olması gerektiğini söylemek. Yani, bir anahtar kullanarak bir şey çıkardığımda? = Xyz, güvenle yapabilirim derleyicinin beni sadece bu şekilde koymasına sınırlayabildiğinden, xyz değeri, bu derleme zamanı bilgisini, derleyicinin işleyemediği anlaşılıyor. – RHSeeger