2014-02-17 53 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

相关问题