将通用类型列表添加到另一个

时间:2017-05-02 04:51:00

标签: java android collections

private List<? extends BaseModelBO> overAllItems = new ArrayList<>();

我正在尝试添加另一个相同类型的列表。

List<? extends BaseModelBO> newList = getResponseList(webServiceResponse.getResponse());

if (newList != null && newList.size() > 0)               
    overAllItems.addAll(newList);

还尝试了List<AnyClassWhichExtendsBaseModelBO> ..

喜欢

List<ContactBO> contactList = getContacts(); //where ContactBO extends BaseModelBO

overAllItems.addAll(contactList);

错误日志

addAll in List cannot be applied to java.util.List<capture<? extends BaseModelBO>>

查看错误图片

enter image description here

2 个答案:

答案 0 :(得分:2)

这是因为编译器不知道? extends BaseModelBO的正确类型,所以当addAll编译器不知道应该在那里应用什么类型时,抛出编译错误。所以你可以这样做:

private List<BaseModelBO> overAllItems = new ArrayList<>();

答案 1 :(得分:-1)

newList的类型更改为:

List newList = getResponseList(webServiceResponse.getResponse());

现在编译器发出警告:List是原始类型,但没有错误。