2014-02-17 95 views
3

我想使用我正在使用的庫的構造函數。 但我需要傳遞這個對象:如何使用List <?擴展地圖<String, ?>>

List<? extends Map<String, ?>> 

但我只有一個目標:

data = ArrayList<MyOwnObject>. 

我不明白我是如何適應我的數據,以適應List<? extends Map<String, ?>>

謝謝。

+3

'MyOwnObject'必須擴展'Map ' – m0skit0

+1

MyOwnObject必須擴展Map 。 – Alexiy

回答

4

好的。那<? extends Whatever>被稱爲有界通配符。它只會匹配你的ArrayList<YourObject>如果YourObject屬於一個類實現Map<String, Something>,其中Something可以是任何類(這將匹配無界通配符?)。

您的ArrayList是完全正常的,因爲它實現了List接口。這是您的自定義MyOwnObject需要滿足上述限制。

查看更多關於通配符here

+0

好的,MyOwnObject已經擴展了其他類,但我可以修改它。現在正在工作。這很奇怪,因爲我的對象正在擴展地圖<>,但我沒有使用任何地圖<>功能。 – user2250466

+0

如果你使用較新的java(不在eclipse中),你會得到「錯誤:不兼容的類型:列表不能轉換爲List <?extends Map >」我還沒有找到解決方法。 – JosephK

相關問題