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
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.)
Nasıl dizi dize koymak için, yeni bir ...
Yazın Arabiriminin nesne artığını açıl...
Liste<Köpek> Listenin alt<Hay...
Nasıl XAML unicode bir karakter koymak...
Nasıl komplo dışında efsane koymak...