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

  • 8bitdigitaltv

    8bitdigitalt

    31 AĞUSTOS 2011
  • Evan Coury

    Evan Coury

    29 NİSAN 2007
  • Matt Steffanina

    Matt Steffan

    1 EYLÜL 2011