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

  • Carlos Delgado

    Carlos Delga

    21 HAZİRAN 2011
  • Music EuroDance 2

    Music EuroDa

    12 Mayıs 2011
  • Top10Series

    Top10Series

    26 Kasım 2008