SORU
15 EKİM 2009, PERŞEMBE


Java: Örneğin ve Jenerik

Değer Endeksi için genel bir veri yapısı ile bakmaya gitmeden önce, eğer this parametrize edilmiş türünde bir örnek bile olsa görmek isterdim.

Ama Eclipse bunu yaptığımda şikayet:

@Override
public int indexOf(Object arg0) {
    if (!(arg0 instanceof E)) {
        return -1;
    }

Bu hata iletisi:

Olamaz genel tür bilgi beri silme Nesnesi çalışma anında silinecek yerine örneğin türü parametre E. kullanımına karşı gerçekleştirmek kontrol edin

Bunu yapmak için en iyi yolu nedir?

CEVAP
15 EKİM 2009, PERŞEMBE


Hata mesajı her şeyi açıklıyor. Çalışma zamanında, tip yok, bunu kontrol etmek için bir yol yoktur.

Böyle bir nesne için bir fabrika yaparak yakalayabilirsin:

 public static <T> MyObject<T> createMyObject(Class<T> type) {
    return new MyObject<T>(type);
 }

Ve sonra, bir kod bloğu içinde bu tür bir mağaza, çok değişken yöntem şöyle ki:

        if (arg0 != null && !(this.type.isAssignableFrom(arg0.getClass()))
        {
            return -1;
        }

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Project Mooncircle

    Project Moon

    6 Aralık 2009
  • SamsTech

    SamsTech

    4 NİSAN 2014
  • TheSalband Rai

    TheSalband R

    11 NİSAN 2011