2014-12-04 20 views
-1

繼PECS原則我知道我可以宣佈,我可以把類型T的值到一個列表,像這樣(T這裏是一個字符串):Java泛型列表作爲parmeter

​​

繼同樣的原則,誰想要穿越包含列表T的可能做這種方式:

void myTraversingMethod(List<? extends Object> anyList) { 
    for (Object o: anyList) { 
    ... 
    } 
} 

可是我怎麼傳我在步驟1到步驟2的方法產生的名單?

myTraversingMethod(myList) <--- Not possible 

即使我想我似乎甚至無法正確投射參數。

泛型專家,幫我在這裏:-)

+5

你有什麼錯誤?它是一個編譯錯誤?請把它寫在問題上。 – logoff 2014-12-04 10:38:35

+0

BTW <?擴展Object>不是很豐富,因爲任何東西都會擴展Object。泛型的力量開始於實際使用泛型類型時,比如'public class Foo {public T getFoo(){...}}' – geert3 2014-12-04 10:58:16

回答

2

先讓明確的幾件事情, 不List<? super Object) myList,你有)字符,而不是> 另一件事是列表中沒有定義方法put,添加東西到列出您在使用add

整理yhose問題一切正常後,看看this example

+0

對於語法錯誤,我並不是真的想要示例代碼是可編譯只是爲了從概念上說明問題。感謝這個例子,但它只解決了我一半的問題。我有這些項目,我想列入名單:類東西 {T值; T getValue(); setValue(T t){...}}然後我必須把這些對象放到一個列表中,我可以傳遞給另一個方法,然後遍歷這些對象。 – user1283068 2014-12-09 12:41:17

+0

@ user1283068所以你有類似的東西http://ideone.com/7UIwAb對不對?你有什麼問題? – user902383 2014-12-09 13:15:54

+0

感謝這個例子 - 有點不傻:-)我的確處於「超級」或「擴展」似乎不符合目的的情況,並且想要提出一個關於這個問題的問題。但我在表達這個問題時並不十分小心,因此您或其他人如何能夠提供有意義的答案。謝謝你嘗試.. :-) – user1283068 2014-12-11 10:51:51