Двоичный ввод / вывод и генерация данных в Java - PullRequest
0 голосов
/ 06 ноября 2018

Я пишу программу, которая случайным образом генерирует список из 2000 человек в файл "people.txt", который содержит их имя, фамилию и уникальный идентификационный номер.

Условия: а) имя и фамилия должны быть выбраны из большого пула имен. б) уникальные идентификационные номера должны состоять из 4 цифр.

Моя стратегия была следующей:

  1. Я создал класс Person с 3 закрытыми полями: firstName, lastName и id (все строки). В нем есть все методы получения / установки и пустой конструктор.

  2. Я создал два класса для случайного генерирования и возврата имен и идентификаторов.

  3. Затем я создал класс Utilities, который в основном читает и записывает объект Person в текстовый файл.

  4. Наконец, вот где я застрял.

    public static void main(String[] args) throws IOException, 
             ClassNotFoundException{
    
        Person[] array = new Person[2000];
    
        RandID idNum = new RandID();
        RandNames rand = new RandNames();
    
        String id;
        String first;
        String last;
    
    
        for(int i=0; i<array.length; i++) {
    
            id = idNum.nextString();
            first = rand.nextFirstName();
            last = rand.nextLastName();
    
            array[i].setID(id);
            array[i].setFirstName(first);
            array[i].setLastName(last);
    
            Utilities.savePerson(array[i]);
        }
    }
    

То, что я знаю до сих пор, сводится к NullPointerException, поскольку при первом создании экземпляра массива Person он становится нулевым. Я думаю, что у меня может быть идея относительно того, как ее решить, но чтобы не тратить бесполезные часы, пытаясь выяснить это методом грубой силы, я хочу подтвердить здесь, является ли это правильным подходом, и если нет, я был бы очень признателен за любые отзывы ,

Так что я думаю, что я должен выбросить исключение NullPointerException в своем основном аргументе и в предложении catch, у меня будет один объект person, параметры которого вызывают случайные классы, а затем добавлю этот объект person в массив, который был перехвачен с помощью NullPointerException. Будет ли это работать?

...