2011-01-17 15 views
5

Tür silme, tüm genel bilgileri silmeniz gerekir ... Eğer böyle bir durum varsa, GSON gibi bir kütüphane hangi türlerin seri hale getirileceğini belirlemek için jenerikleri nasıl kullanır?Java'da Tür Silme

örn.

private Map<String,Date> tenordates; 

Bu yüzden nasılsa <Date,Date>

için serisini nerede

private Map<Date,Date> tenordates; 

olarak <String,Date> için serisini olacak onun zamanında jenerik bilgileri kullanarak.

+2

yansıma olabilir .. Kodu kontrol etmedim. –

+0

[getSimpleNameWithGenerics (Sınıf clazz)] 'nın olası kopyası] (http://stackoverflow.com/questions/4707042/getsimplenamewithgenericsclass-clazz) – bmargulies

cevap

5

Tür silme, tüm tür bilgilerini silmez. Sınıf, alan, dönüş tipi ve parametre tanımlarından silmez. Aşağıdaki örneklerde tipi bilgisi elde edilir:

public class Foo extends List<Bar> { ..} 

private List<Foo> foos; 

public List<Foo> getFoos() {..} 

public void doSomething(List<Foo> foos) {..} 

Bu yansıma yoluyla erişilebilir - java.lang.reflect.ParameterizedType. Verilen bir Type'un bu sınıfta instanceof olup olmadığını kontrol edebilir ve bunlara tür bilgisi gönderebilir ve alabilirsiniz.

İlgili konular