【发布时间】:2018-09-21 01:39:24
【问题描述】:
我是 Java 新手,所以如果这个问题太愚蠢或其他什么,首先很抱歉。我有一个抽象类的 ArrayList。我在列表中添加了一些对象。现在我需要通过其中一个属性找到它来删除其中一个。问题是抽象类有两个具体类,并且它们都被添加到列表中。该属性是从抽象类继承的,所以当我做一个 foreach 时,我用抽象类来做,但我不知道如何告诉它它需要删除的对象是这个具体类而不是另一个。
public void removeFruit (Integer fruitCode) {
Apple lostFruit = null;
Banana lostFruit2 =null;
for (Fruit fruit1 : fruitList) {
if (fruit1.getFruitCode().equals(fruitCode) && fruit1 == Apple) {
lostFruit = (Apple) fruit1;
fruitList.remove(lostFruit);
}else {
lostFruit2 = (Banana) fruit1;
fruitList.remove(lostFruit2);
}
}
System.out.println(fruitCode + "has been removed from the list");
}
【问题讨论】:
-
当你要查找的属性是抽象类型时,为什么要知道它是什么具体类型?
标签: java oop arraylist abstract-class