Ich bin neu in Java und immer noch Probleme mit Arrays. Jede Hilfe wird hier geschätzt. Mein Programm liest Daten aus einer CSV-Eingabedatei in der Hauptklasse und soll eine zweite Klasse verwenden, um jede Zeile (Array) in einer ArrayList zu speichern, in der die Hauptklasse irgendwann die Array-Liste auf den Bildschirm drucken wird. Ich bin wirklich verloren, wie ich das umsetzen kann.Hinzufügen zu einem Array zu einer ArrayList
Probeneingang
PERSON,ADD,BB222222,Anna
Hauptklasse
try{
File inputFile = new File(INPUT_FILENAME);
Scanner scanFile = new Scanner(inputFile);
String aLine;
String[]theLines;
while(scanFile.hasNextLine()){
aLine = scanFile.nextLine();
theLines = aLine.split(",");
if ("PERSON".equals(theLines[0]) && "ADD".equals(theLines[1])){
processPersonAddition(theLines);
}
Method jede Zeile in der Arraylist hinzuzufügen
public static void processPersonAddition(String[]theLines){
Person personAdd = new Person();
setPersonAttributes(personAdd, theLines);
personLogImpl.add(theLines);
}
PersonLogImpl Klasse
import java.util.ArrayList;
public class PersonLogImpl {
private boolean add;
private String licenseNumber, firstName
private ArrayList<Person> myList;
public ArrayList<Person> getPersonLog(){
return myList;
}
public boolean add(Object obj){ //add person object to ordered list
ArrayList<String> list = new ArrayList<>();
return add;
}
Dies ist eine dritte Klasse, aber das funktioniert prima, verwendet nur als Getter und Setter
EDIT: dies ist die setPersonsAttributes Methode
private static void setPersonAttributes(Person person, String[]inputLineValues){
person.setLicenseNumber(inputLineValues[2]);
person.setFirstName(inputLineValues[3]);
}
Ich habe die Änderungen vorgenommen haben, jetzt habe ich einen Fehler zur Lauf von „Exception in thread‚main‘java.lang.NullPointerException bei myclass.PersonLogImpl.add (PersonLogImpl.Java:22) – Newb2Java
ich gerade bearbeitet meine Antwort bekommen Sie haben Ihre Liste nicht initialisiert, deshalb erhalten Sie die Nullzeiger-Ausnahme. Initialisieren Sie die Liste wie in meiner bearbeiteten Antwort gezeigt und versuchen Sie es erneut. – VHS