Как добавить элементы в массив объектов с помощью циклов

У меня есть несколько студенческих объектов, в которые я хочу записать файл CSV, содержащий их данные. Я установил каждую строку файла CSV в массив, затем собирался разделить каждую запись массива на другой массив и использовать его для установки атрибутов объекта. Однако каждый раз, когда я пытаюсь, я получаю исключение NullPointerException.

String studentCSV = "src\\CSV Files\\Students.csv";
Student[] student = new Student[CSV_Reader.count(studentCSV)];
String[] values = CSV_Reader.read(studentCSV);

for(int i=0;i<values.length;i++){
    String[] line = values[i].split(",");
    student[i].addPerson(line[0],line[1],line[2],line[3]);
    student[i].addStudent(line[4],line[5],line[6]);
}

Предоставьте дополнительную информацию, необходимую для воссоздания проблемы.

Scott Hunter 06.05.2022 14:25
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
43
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Скорее всего, есть строка с отсутствующей информацией (или разделителем), и попытка доступа к этому индексу вызывает исключение. Вы должны проверить это в первую очередь (просто сначала распечатайте строки в цикле, и все, что вызывает ошибку, будет напечатано последним).

В противном случае: покажите полный журнал ошибок и укажите, в какой строке возникает ошибка.

Ответ принят как подходящий
int n=10; // for example
Student[] student = new Student[n];
//now you just allocate memory for array

for(int i=0;i<student.length;i++){
    student[i]=new Student(); 
// here you assign student to your any element of array  
}
// now you can do anything with  elements of your student array

Спасибо, приятель, это сработало. Я знал, что это что-то простое, но это ускользало от меня очень долго

Invalidmustache 06.05.2022 14:41

Другие вопросы по теме