我已经完成了这段代码:
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()
我想我正在提供所需的信息。
答案 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)
在调用对象的方法
之前,请务必检查对象是否为nullgf