簡體   English   中英

Java List接口方法:containsAll(Collection <?> C)

[英]Java List interface method: containsAll(Collection<?> c)

我了解如何編寫一個contains(E item)方法,方法是檢查其中的每個項目,如果發現其中的一個元素等於item,則返回true。

但是當你通過c時,你將如何處理集合的通配符類型? 你應該這樣說:

for (Object item: c) {

你會怎么稱它是一個? 類型。

編譯器不喜歡:

for (? item: c) 

要么

for (<?> item: c)

是的,你確實寫

for (Object item: c) {

根本就沒有所謂的類型? -這是一個通配符,表示此處所有內容都是允許的(即,所允許的類型沒有范圍 ); 不是“通配符類型” 最好的辦法是使用Object因為您對此類集合中的元素一無所知。 通配符的意思是說類型是未知的

通配符與完全不同

Collection<E>

要么

Collection<Object>

有一些SO問題可以解決這些差異; 一種是Java泛型(通配符)

但同樣,關鍵思想是? 它不是一種類型,它更像是一個元級別的概念。 這就是為什么你不能聲明那個“類型”的變量。

是的,使用for(Object item: c)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM