NullPointerException при работе с массивом классов Java

159
01 января 2022, 23:40

У меня есть массив класса VKUser. Пользователь моей программы должен вводить данные о пользователях, после чего они отправляются в класс через сеттеры, однако происходит ошибка.

Ошибка:

Exception in thread "main" java.lang.NullPointerException at nikitakapl.MainApp.main(MainApp.java:75)

class VKUser {
    private int UserID;
    private String UserFirstName, UserLastName, UserCity;
    void set_UserID(int New_UserID) {
        UserID = New_UserID;
    }
    void set_UserName(String New_UserFirstName, String New_UserLastName) {
        UserFirstName = New_UserFirstName;
        UserLastName = New_UserLastName;
    }
    void set_UserCity(String New_UserCity) {
        UserCity = New_UserCity;
    }
}

/-/

public  class MainApp {
public static void main(String[] args) throws  Exception {
    Scanner in = new Scanner(System.in);
    System.out.println("Введите кол-во новых учеников: ");
    int UserCount = in.nextInt();
    VKUser [] VKUser_Array = new VKUser[UserCount];
    for (int UserIndex = 0; UserIndex < UserCount; UserIndex ++) {
        boolean isTrue = false;
        do {
            System.out.println("\nВведите UserID: ");
            int UserID = in.nextInt();
            System.out.println("Введите FirstUserName: ");
            String UserFirstName = in.next();
            System.out.println("Введите LastUserName: ");
            String UserLastName = in.next();
            System.out.println("Введите UserCity: ");
            String UserCity = in.next();
            System.out.printf("\nПроверьте правильность введенных вами данных: \n\n" +
                              "UseID: %d\n" +
                              "UserFirstName: %s\n" +
                              "UserLastName: %s\n" +
                              "UserCity: %s\n\n", UserID, UserFirstName, UserLastName, UserCity);
            System.out.println("Введите 1, если введенные вами данные верны или 0, если нет");
            if (in.nextInt() == 1) {
                isTrue = true;
                // ВОТ С ЭТОГО МОМЕНТА ПРОИСХОДИТ ОШИБКА
                VKUser_Array[UserIndex].set_UserID(UserID);
                VKUser_Array[UserIndex].set_UserName(UserFirstName, UserLastName);
                VKUser_Array[UserIndex].set_UserCity(UserCity);
            }
        } while (!isTrue);
    }
Answer 1
VKUser user = new VKUser();
user.set_UserID(UserID);
user.set_UserName(UserFirstName, UserLastName);
user.set_UserCity(UserCity);
VKUser_Array[UserIndex] = user;

добавьте это в то место, где у вас коммент об ошибке вместо:

VKUser_Array[UserIndex].set_UserID(UserID);
VKUser_Array[UserIndex].set_UserName(UserFirstName, UserLastName);
VKUser_Array[UserIndex].set_UserCity(UserCity);
READ ALSO
Как настроить Android App Bundles чтобы опубликовать apk (PWA)?

Как настроить Android App Bundles чтобы опубликовать apk (PWA)?

Есть сайт с PWA, нужно опубликовать его в Google PlayСделал все по статье: https://habr

166
В чем различие OutputStreamWriter и FileWriter?

В чем различие OutputStreamWriter и FileWriter?

Честно гуглилНашел это: OutputStreamWriter vs FileWriter

90
Как сделать расчет стоимости заказа?

Как сделать расчет стоимости заказа?

Имеется map с ценами <наименование, цена> и map с заказом <наименование, количество>Нужно рассчитать общую стоимость заказа

196