如何基于文件添加对象

时间:2018-09-24 23:33:39

标签: java arrays object

我正在尝试根据文件输入添加对象。如果文件中的第一个字段具有特定名称,例如“ 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);
    }
}

0 个答案:

没有答案