Хотя цикл дает мне "" ошибка - PullRequest
0 голосов
/ 04 октября 2018

Цель состоит в том, чтобы заполнить ArrayList пользовательскими объектами Country, состоящими из информации из отдельного текстового файла.Цикл while дает мне ошибку «ожидаемый идентификатор», и я нахожусь на грани остроумия, пытаясь ее исправить.

import java.util.Scanner;
import java.util.ArrayList;
import java.io.File;
import java.io.FileNotFoundException;

public class Driver {

    public static void main(String[] args) {
        //Instance variables
        Scanner sc;
        Country next = new Country();
        String reader;
        int size;
        ArrayList<Country> ledger = new ArrayList<Country>();

        //Suppressing this exception because I know it's there.
        @SuppressWarnings("unreported exception FileNotFoundException; must be caught or declared to be thrown")
        sc = new Scanner(new File("testLedger.txt"));

        //"<identifier> expected" error
        while (sc.hasNext()) {
            next.setName(sc.nextLine());
            next.setFaith(sc.nextLine());
            next.setInfo(sc.nextLine());
            next.setOrder(sc.nextInt());
            ledger.add(next);
        }

        //Test accessor methods and filling of the ArrayList
        for (int i = 0; i < ledger.size(); i++) {
            System.out.println(ledger.get(i));
        }
    }
}

1 Ответ

0 голосов
/ 04 октября 2018

Во-первых, ваш код не будет компилироваться.Вы должны обработать исключения.Так как в этом случае вы только запускаете тест, вы можете использовать Throw в методе main.

    try {
        sc = new Scanner(new File("testes.txt"));

        while (sc.hasNext()) {

            next.setName(sc.nextLine());
            next.setFaith(sc.nextLine());
            next.setInfo(sc.nextLine());
            next.setOrder(sc.nextInt());
            ledger.add(next);
        }
    } catch (FileNotFoundException e) {
        System.out.println(e);
    }

Во-вторых, посмотрите на сеттеры вашего класса Country и посмотрите, совместимы ли типы методов с какими.вы используете в то время.

Например:

sc.nextLine () // will return a String
sc.nextInt () // will return an int

ваши сеттеры должны быть совместимы с этим

public void setOrder(int order){
    this.order = order;
}

и, наконец, как указано @ Дауд в комментариях, вам нужно посмотреть stackoverflow.com / q / 13102045

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...