空指针显示无法找到错误

时间:2014-06-19 10:55:32

标签: java

NULL POINTER运行程序时显示错误消息。 代码已附加但似乎无法找到问题。

线程中的异常" main"显示java.lang.NullPointerException     在coursework2.Assignment.main(Assignment.java:330

  lastName = last;
  firstName = first;
  email = pemail;
  dob = pdob;
  town = ptown;
  job = pjob;
  school = pschool;
  status = pstatus;
  //String[] friendArray;
  friendArray = new String[]{lastName,firstName,email,dob,town,job,school,status};



  String searchName;
  int input;
  int index;

  SimpleDateFormat dateFormat= new SimpleDateFormat ("dd/mm/yyy");
  SimpleDateFormat timeFormat= new SimpleDateFormat ("hh:mm");
  SimpleDateFormat birthdayFormat= new SimpleDateFormat ("dd/mm");

  Date today = new Date();

  dateFormat.format(today);           //get current date time with date()
  timeFormat.format(today);           //get current date time with calender ()
  birthdayFormat.format(today);       //get current
  Calendar.getInstance();

  //int length = friendList.length;
  int maxSize = 100;                                                    // array size
  User arr;                                                         // reference to array
  arr = new User(maxSize);                                         // create the array
  User [] userList = new User[500];

  friendArray = new String[]{lastName};
  userList[0].setFriendArray("Henly");
  userList[0].setFriendArray("White");

  userList[1].setFriendArray("Davidson");
  userList[1].setFriendArray("White");

  userList[2].setFriendArray("Browne");
  userList[2].setFriendArray("Gomez");

  userList[3].setFriendArray("Browne");
  userList[3].setFriendArray("Reid");

  userList[4].setFriendArray("White");
  userList[4].setFriendArray("Henly");

  userList[5].setFriendArray("Myles");
  userList[5].setFriendArray("Browne");

  userList[6].setFriendArray("Davidson");
  userList[6].setFriendArray("Browne");

  userList[7].setFriendArray("White");
  userList[7].setFriendArray("Gomez");

  userList[8].setFriendArray("Reid");
  userList[8].setFriendArray("Scott");

1 个答案:

答案 0 :(得分:0)

此代码在每个插槽中创建一个null的数组:

User [] userList = new User[500];

几行,你尝试使用userList[0]

userList[0].setFriendArray("Henly");

...但userList[0]仍为null。您必须创建一个User对象并将其分配给该条目,例如:

userList[0] = new User(/*...any necessary arguments here...*/);

然后你可以这样做:

userList[0].setFriendArray("Henly");

...因为userList[0]不再是null

显然,对于索引1,2,3等也是如此。


旁注:在其他地方,你有:

User arr;

强烈建议你不要调用不是数组的arr