&Lt arasında fark nedir? süper E> ve <? E> uzanır;?
<? super E>
<? extends E>
arasındaki fark nedir?
Sınıf java.util.concurrent.LinkedBlockingQueue
bak örneğin kurucu için şu imza var:
public LinkedBlockingQueue(Collection<? extends E> c)
ve bu yöntem için:
public int drainTo(Collection<? super E> c)
CEVAP
İlk olduğunu söylüyor "E atası olan bir tür"; ikincisi, diyor ki "E bir alt sınıfı olan bir tür". (E Tamam kendisi, her iki durumda da.)
Kurucu o zaman o garanti yani ? extends E
form kullanırgetirirkoleksiyonu değerleri, E veya bazı alt (yani uyumlu). drainTo
yöntem değerleri koymak için çalışıyoriçinekoleksiyon, koleksiyon E
öğe türüne sahip olması gerekirya da bir üst sınıf.
Örnek olarak, böyle bir sınıfın olduğunu varsayalım:
Parent extends Object
Child extends Parent
ve bir LinkedBlockingQueue<Parent>
. Child
Her bir ebeveyn olduğu için tüm öğeleri güvenli bir şekilde kopyalama, List<Child>
Bu geçen oluşturabilirsiniz. Bazı elementler Parent
ile uyumlu olmayabilir çünkü List<Object>
başarılı olamazsın.
Aynı şekilde yapabilirsiniz tahliye kuyruğuna List<Object>
çünkü her Parent
Object
... ama yapamadın drenaj içine List<Child>
çünkü List<Child>
bekler tüm unsurları ile uyumlu Child
.
Oracle Görüşleri ve Hayata bakış açıla...
' ve' ve', ' Java ...
Okumak Arasındaki Fark nedir() ve al (...
&Quot;Flush Magento Önbellek" ve ...
&Quot;git init" ve "git init...