gpt4 book ai didi

Java - 从父类(super class)的ArrayList中排序出子类

转载 作者:行者123 更新时间:2023-11-30 03:32:32 25 4
gpt4 key购买 nike

我有一个 ArrayList,其中包含父类(super class)的对象和一些子类对象。我们将它们称为 subclass1 和 subclass2。

有没有一种方法可以让我通过 ArrayList 来辨别哪些对象是 SuperClass、subclass1 和 subclass2。这样我就可以将它们放入ArrayList和ArrayList中。

这是一个过于简化的版本,但它演示了我希望做什么。

    public class food{
private String name;
public food(String name){
this.name = name;
}
}

public class pudding extends food{
public pudding(String name){
super(name);
}
}

public class breakfast extends food{
public breakfast(String name){
super(name);
}
}

public static void main(String args[]){
ArrayList<food> foods = new ArrayList();

foods.add(new food("Sausage"));
foods.add(new food("Bacon"));
foods.add(new pudding("cake"));
foods.add(new breakfast("toast"));
foods.add(new pudding("sponge"));
foods.add(new food("Rice"));
foods.add(new breakfast("eggs"));

ArrayList<pudding> puds = new ArrayList();
ArrayList<breakfast> wakeupjuices = new ArrayList();

for(food f : foods){
//if(f is pudding){puds.add(f);}
//else if(f is breakfast){wakeupjuices.add(f);}
}

}

最佳答案

您可以使用 instanceof 关键字检查所需的类型,如下所示:

for (food f : foods)
{
if (f instanceof pudding)
puds.add(f);
else if (f instanceof breakfast)
wakeupjuices.add(f);
}

关于Java - 从父类(super class)的ArrayList中排序出子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28675827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com