我想使用我正在使用的库的构造函数。 但我需要传递这个对象:如何使用List <?扩展地图<String, ?>>
List<? extends Map<String, ?>>
但我只有一个目标:
data = ArrayList<MyOwnObject>.
我不明白我是如何适应我的数据,以适应List<? extends Map<String, ?>>
。
谢谢。
我想使用我正在使用的库的构造函数。 但我需要传递这个对象:如何使用List <?扩展地图<String, ?>>
List<? extends Map<String, ?>>
但我只有一个目标:
data = ArrayList<MyOwnObject>.
我不明白我是如何适应我的数据,以适应List<? extends Map<String, ?>>
。
谢谢。
好的。那<? extends Whatever>
被称为有界通配符。它只会匹配你的ArrayList<YourObject>
如果YourObject
属于一个类实现Map<String, Something>
,其中Something
可以是任何类(这将匹配无界通配符?
)。
您的ArrayList
是完全正常的,因为它实现了List
接口。这是您的自定义MyOwnObject
需要满足上述限制。
查看更多关于通配符here。
好的,MyOwnObject已经扩展了其他类,但我可以修改它。现在正在工作。这很奇怪,因为我的对象正在扩展地图<>,但我没有使用任何地图<>功能。 – user2250466
如果你使用较新的java(不在eclipse中),你会得到“错误:不兼容的类型:列表
'MyOwnObject'必须扩展'Map' –
m0skit0
MyOwnObject必须扩展Map。 –
Alexiy