如何解决这个java.lang.NullPointerException错误?
我目前正在尝试构建一个时钟程序来练习构建类和存储文本数据。我目前收到一个nullPointerException,尽管我相信我正确初始化了时钟阵列温度如何解决这个java.lang.NullPointerException错误?,java,file,text,Java,File,Text,我目前正在尝试构建一个时钟程序来练习构建类和存储文本数据。我目前收到一个nullPointerException,尽管我相信我正确初始化了时钟阵列温度 public TimeClock[] readFile(){ try{ read = new Scanner(new File("TimeClockData.txt") ); } catch (Exception e){ System.out.println("could not find file
public TimeClock[] readFile(){
try{
read = new Scanner(new File("TimeClockData.txt") );
} catch (Exception e){
System.out.println("could not find file");
}
TimeClock[] temp = new TimeClock[100];
int count = 0;
String data1;
String data2;
String data3;
while(read.hasNext() ){
data1 = read.next();
data2 = read.next();
data3 = read.next();
temp[count].setInTime( Long.parseLong(data1) );
temp[count].setOutTime( Long.parseLong(data2) );
temp[count].setNotes(data3);
count++;
}
read.close();
return temp;
}
我不断得到错误:
Exception in thread "main" java.lang.NullPointerException
at timeclock.pkg2.ReadFile.readFile(ReadFile.java:46)
at timeclock.pkg2.Timeclock2.main(Timeclock2.java:56)
Java Result: 1
在Java中初始化数组只需创建一个给定大小的空数组。在使用每个元素之前,仍然必须显式初始化它:
while(read.hasNext() ){
data1 = read.next();
data2 = read.next();
data3 = read.next();
temp[count] = new TimeClock(); // Was missing in the OP code
temp[count].setInTime( Long.parseLong(data1) );
temp[count].setOutTime( Long.parseLong(data2) );
temp[count].setNotes(data3);
count++;
}
所有临时数组元素都为空。首先,您必须初始化它们
...
temp[count] = new TimeClock();
temp[count].setInTime( Long.parseLong(data1) );
...
此外,您还可以检查hasNext一次,但请致电next三次。