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

  • 07cadikiz07

    07cadikiz07

    17 EKİM 2007
  • Abe Olandres

    Abe Olandres

    16 EYLÜL 2006
  • ghosti66

    ghosti66

    27 AĞUSTOS 2006