![](/img/trans.png)
[英]how containsall method from collections interface works in java?
[英]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.