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

  • DONFANTASTICKYPESS

    DONFANTASTIC

    1 Temmuz 2007
  • laptopmag

    laptopmag

    25 Ocak 2008
  • TheXiaxue

    TheXiaxue

    3 AĞUSTOS 2009