SORU
18 AĞUSTOS 2009, Salı


Jenerik-ve kural Koymak

Bu ve kural bilmem gelen O'Reilly kitap okudum

Sadece zaman joker uzanan bir kullanım yapısı değerlerini, tek bir yapı içine değerleri koymak süper bir joker kullanın ve her iki elde ve koymak için bir arama yok.

istisnalar:

  • Olamaz her başvuru türüne ait değer null hariç joker UZANAN bir türü ile bildirilen içine bir şey koymak

  • olamaz her başvuru türü süper bir türü olan bir tür Nesne türü değeri hariç SÜPER bir joker ile ilan etti, bir şey öğrenmek mümkün değil

Kimse bana derinlikte bu kuralı keşfetmek için yardımcı olabilir misiniz? Mümkünse,lütfen onları hiyerarşik bir şekilde koyun.

CEVAP
18 AĞUSTOS 2009, Salı


Bir salkım muz düşünün. Bu meyve özel koleksiyon o Collection<? extends Fruit> - ama bir koleksiyonu ne (bildirim) bilmiyorsun. Yapabilirsinizolsunve biliyor musun, bir maddenin kesinlikle bir meyve olacak, ama yapamazsınekleyinbunun için kesinlikle yanlış olan bir salkım muz, elma eklemek için çalışıyor olabilirsiniz. Sanaolabilirbunun için geçerli bir değer olarak null ekleyinherhangi birmeyve gibi.

Şimdi düşünün bir fruitbowl. Bu bir tür" Banana (örneğin, Collection<Fruit> Collection<TropicalFruit>). daha büyük bir koleksiyonu Collection<? super Banana> a Yapabilirsinizkesinliklebu bir muz eklemek, ama Eğer kase bir öğeyi getir - Peki ne elde edeceksin bilmiyorumdeğilbir muz olabilir. Emin tüm geçerli (büyük olasılıkla) null Object bir referans olacaktır.

(Java jenerik sorular için, genel olarak, Java Generics FAQ jenerik ile ilgili de atmak olasılığınız olan hemen hemen her şey için cevap içeren mükemmel bir kaynaktır.)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • John Lynn

    John Lynn

    8 Ocak 2010
  • krotoflik

    krotoflik

    26 ŞUBAT 2011
  • trickycharms

    trickycharms

    6 Aralık 2013