我正在尝试根据文件输入添加对象。如果文件中的第一个字段具有特定名称,例如“ goblin”或“ troll”,则程序应创建一个与该类相对应的对象。在我的程序中,我试图使用比较来进行拆分,以匹配文件中的输入,但最终会无限运行。我遇到的问题是我不知道如何对对象创建进行排序。就像我如何创建一个新的地精(如果文件名称中包含地精)?请参阅下面的代码,查看我遇到的问题。如何根据文件输入添加新对象?那就是我要弄清楚的。 else语句用于创建新的敌人对象。它从文件中获取输入以创建新的敌人对象。它可以工作,但另一个if语句不能
public void loadOpponents(String filename) {
// TODO
// Replace the code below with code that reads values from
// the given file and creates the appropriate opponent.
// You will need to check whether the first field is Troll,
// Jinn, Wall, etc. to determine the type of opponent to create.
// Once the opponent is created, add it to the opponents array list.
if (input.next().split("Wall").equals("Wall")) {
Wall wall = new Wall();
opponents.add(wall);
} else if (input.next().split("Troll").equals("Troll")) {
Troll troll = new Troll(numVials);
opponents.add(troll);
} else if (input.next().split("Goblin").equals("Goblin")) {
Goblin goblin = new Goblin(numVials);
opponents.add(goblin);
} else if (input.next().split("Jinn").equals("Jinn")) {
Jinn Jinn = new Jinn(numVials);
opponents.add(Jinn);
} else {
String line[] = input.next().split(",");
String name = line[0];
if (line[1] != null && line[1].trim().matches("^[0-9]*$")) {
int strength = Integer.parseInt(line[1]);
}
if (line[2] != null && line[2].trim().matches("^[0-9]*$")) {
int speed = Integer.parseInt(line[2]);
}
if (line[3] != null && line[3].trim().matches("^[0-9]*$")) {
int numVials = Integer.parseInt(line[3]);
}
Enemy newEnemy = new Enemy(name, strength, speed, numVials);
opponents.add(newEnemy);
}
}