NullPointerException when using .size() in an Arraylist class

NJ_GMD :

currently, I'm doing an assignment that deals with the ArrayList class. at some point, I need to check of the id of the instructor and make sure that the instructor is not added twice to the ArrayList, so I made a for loop to go through all the id that has been registered and get the id and check if it exists already

the problem is when I use the method " .size()" in the loop, the JVM throws NullPointerException and I don't know why.

==========================================================================

what I need to read is this:

\\name - id - dateOfBirth - gender - degree - speciality - city - availability

Amanda Smith, 102020, 320101200000, M, PhD, Software Engineering, NewYork, true

=======================================================================

this is the code:

public static void main(String[] args) {

    /* NOTE: I HAVE A CLASS CALLED "UniversityMember" THAT IS A SUPERCLASS FOR "Instructor" CLASS */

    //declare what I need   
    ArrayList<UniversityMember> membersList;
    Scanner read = new Scanner("inputFile.txt");//the file contains the text above

    //First: Split the line everytime the sign ", " shows
    String[] line = read.nextLine().split(", ");

    //Second: Assign each valuse to its correspondeding variable
    String name = line[0];
    String id = line[1];
    long date = Long.parseLong(line[2]);
    Date birthDate = new Date(date);
    char gender = line[3].charAt(0);
    String degree = line[4];
    String specialization = line[5];
    String address = line[6];
    boolean availability = Boolean.parseBoolean(line[7]);

    //check if the Id is registered already
    for (int i = 0; i < membersList.size(); i++) { //ERROR OCCURE
        if (membersList.get(i) == null) {
            break;
        }

        if (membersList.get(i).id.equals(id)) {
            System.out.println("The instructor is registered already, the ID is found in the system.");
            System.exit(0);
        }
    }

    //add and make a new object for the constructor
    membersList.add(new Instructor(name, id, birthDate, gender, degree, specialization, address, availability));
    System.out.println("The instructor is successfully added.");

}//end main
JoeChris :

The problem is membersList doesn't exist when you call .size() on it

instead of

ArrayList<UniversityMember> membersList;

you need to initialize it

ArrayList<UniversityMember> membersList = new ArrayList<UniversityMember>();

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=403696&siteId=1