小编jig*_*ard的帖子

从父类的List中提取子类元素

我目前有一个这样的列表:

List<Parent> parentList = new Arraylist<>;
//Code inserts elements of subclassA and subclass B into parentList above
Run Code Online (Sandbox Code Playgroud)

现在我想从parentList中提取类型为子类A的元素.我想做以下但没有错误:

List<SubclassA> extractMe = new Arraylist<>;
for (Parent parent: parentList){
    if (parent.isSubclassA()){extractMe.add(parent);}
}
Run Code Online (Sandbox Code Playgroud)

我不知道怎么能这样做.我不断收到错误,我在列表中添加了错误的对象类型/类,我理解为什么,但我不知道如何更改代码以使其工作.

编辑:

错误(我重命名了类以匹配上面使用的类):

Error:(53, 20) java: no suitable method found for add(Parents.Parent)
        method java.util.Collection.add(Parents.SubclassA) is not applicable
          (argument mismatch; Parents.Parent cannot be converted to Parents.SubclassA)
        method java.util.List.add(Parents.SubclassA) is not applicable
          (argument mismatch; Parents.Parent cannot be converted to Parents.SubclassA)
Run Code Online (Sandbox Code Playgroud)

java inheritance

1
推荐指数
1
解决办法
909
查看次数

标签 统计

inheritance ×1

java ×1