类列表<map>无法转换为Collection <objects>

时间:2017-02-07 10:15:42

标签: java list generics collections

这可能是一个非常愚蠢的问题,我有一个java代码如下:

public Collection<Object> getCollection(){
     List<Map<String,Object> listMap = getListMap();
     return listMap;
}

我得到一个例外

cannot assign a value of Java.util.list<java.util.map<java.lang.String,java.lang.Object>>  
to java.util.Collection<java.lang.Object> 

当然错误必须有效,但为什么呢?我怎么能克服这个?

3 个答案:

答案 0 :(得分:0)

将您的方法签名更改为Collection<Map<String,Object>>

 public Collection<Map<String,Object>> getCollection(){
     List<Map<String,Object>> listMap = getListMap();
     return listMap;
}

答案 1 :(得分:0)

使用泛型时,请避免使用对Object的引用。而是使用通配符?例如,在您的情况下,将Collection<Object>更改为Collection<?>

所以你的方法变成了,

public Collection<?> getCollection(){
     List<Map<String,Object>> listMap = getListMap();
     return listMap;
}

希望这有帮助!

答案 2 :(得分:0)

此材料对于理解泛型继承非常有用: Java Documentation 。 试试这个(它应该可以正常工作):

for (var customer of customerData)