String nesne1 = yigin.nesneGetir("nesne1");
Integer nesne2 = yigin.nesneGetir("nesne2");
Integer nesne2 = yigin.nesneGetir("nesne2");
Bu tip bir kullanımı sağlayabilmek için genel tiplerden yararlanabiliriz. Aşağıdaki NesneYigini sınıfı içindeki "nesneGetir()" metodu örnekteki kullanımı sağlayacak şekilde tasarlanmıştır. Böylece Java derleyicisi metodun çağrıldığı yerde dönüş tipini algılayarak nesne dönüşümünü otomatik olarak yapmaktadır.
public class NesneYigini {
private Map<String, Object> yigin;
@SuppressWarnings("unchecked")
public <T> T nesneGetir(String nesneIsmi) {
return (T) yigin.get(nesneIsmi);
}
}
private Map<String, Object> yigin;
@SuppressWarnings("unchecked")
public <T> T nesneGetir(String nesneIsmi) {
return (T) yigin.get(nesneIsmi);
}
}
nesneGetir() metodu kullanılırken hangi nesne ismine göre hangi tipin geleceği önceden bilinmelidir. Yani yukarıdaki örnekte "nesne1" isminin bir String ve "nesne2"'nin de bir Integer döndüreceği önceden bilinmektedir. Aksi takdirde çalışma zamanında ClassCastException hatası ile karşılaşılacaktır.
Hiç yorum yok:
Yorum Gönder