尝试调用toString()的NullPointerException

时间:2015-10-27 19:46:14

标签: java exception

我已经完成了这段代码:

Table tb;
Exam[] examArr;
int day, month, year, lengt;
String subject, room;
Date d;
lengt = reader.nextInt();
examArr = new Exam[lengt];
for(int i = 0; i<testArr.length; i++)
{
     System.out.println("Enter day, month, year.");
     day = reader.nextInt();
     month = reader.nextInt();
     year = reader.nextInt();
     d = new Date(day, month, year);
     System.out.println("Enter subject.");
     subject = reader.next();
     examArr[i] = new Exam(subject, d);
}
System.out.println("Enter room.");
room = reader.next();
tb = new Table(room, examArr);
System.out.println(tb.toString());

我收到NullPointerException at Table.toString(Table.java:43)的异常。我去了Table班级: private Test[] arr; private String room; toString()方法是:

String s = "";
for(int i = 0; i<this.arr.length;i++)
{
     s += arr[i].toString();
}
return s;

程序将行s += arr[i].toString();标记为黄色。 toString()的{​​{1}}是

Exam

return subject + " " + this.testDay.toString(); 的{​​{1}}是

toString()

我想我正在提供所需的信息。

3 个答案:

答案 0 :(得分:0)

问题是:

System.out.println(tb.toString());

什么是Table课程,您不能对该课程使用toString,因为tb变量为null

答案 1 :(得分:0)

问题可能出在:

...

for(int i = 0; i<this.arr.length;i++)
{
     s += arr[i].toString();
}

...

当你迭代this.arr但你使用arr [i] .toString() 你有任何改变意味着this.arr [i] .toString()?还要检查你的数组是否包含空值而不是空值。

答案 2 :(得分:-2)

在调用对象的方法

之前,请务必检查对象是否为null
gf