【发布时间】:2018-09-21 20:52:40
【问题描述】:
添加第二个动物,将动物 Arraylist 重置为索引 0。因此它保存最后输入的动物。我还将 UML 设计放在下面,所以我正在尝试的内容可能更容易理解。
public class Cage {
private int placeNr;
private ArrayList<Animal> animals = new ArrayList<Animal>();
public Cage(int place) {
this.placeNr = place;
}
public int getCageNr() {
return this.placeNr;
}
public void putAnimal(Animal animal) throws DuplicateNameException {
if(!duplicatedAnimal(animal.getName())) {
animals.add(animal);
}
}
}
此时我很困惑。如何在位于 Cage 的 Arraylist 中添加 Animal 类并将我的 Animals 堆叠在其中。
private static void addAnimal() {
Animal newAnimal;
Cage cage;
try {
System.out.println("Name: ");
String name = sc.next();
System.out.println("Type: ");
String type = sc.next();
System.out.println("birthYear: ");
int birthYear = sc.nextInt();
System.out.println("Cage number: ");
int cageNumber = sc.nextInt();
cage = new Cage(cageNumber);
newAnimal = new Animal(name, type, birthYear);
cage.putAnimal(newAnimal);
} catch (DuplicateNameException dne) {
dne.getMessage();
} catch (InputMismatchException ime) {
System.out.println("Wrong input");
}
}
如果有人能把我推向正确的方向,那就太棒了!
【问题讨论】:
-
您面临的错误/问题到底是什么?
-
"如何在 Arraylist 中添加 Animal 类" 你做 not 添加 class @987654325 @ 但它的 instaces。
-
cage.putAnimal(newAnimal);会报错吗?不良行为?您的帖子根本不清楚... -
"添加第二个 Animal,将 animals Arraylist 重置为索引 0" - 请提供 MCVE。从您目前所展示的情况来看,这不应该发生。
-
方法 duplicatedAnimal 看起来如何?