该死的java。lang.NullPointerException
我的应用程序旨在逐行将1500个项目的现有文本文件读取到一个项目类对象数组中。目标是将数据放入阵列中,以便我可以使用此应用程序作为转换我正在编写的新程序的归档文件的起点
package sandboxPackage;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class mainClass {
public static void main(String[]args) throws FileNotFoundException, IOException {
InputStream in = new FileInputStream(new File("C:\\Documents and Settings\\Adam\\Desktop\\Cloud Project\\MasterIndex.library"));
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder out = new StringBuilder();
String line;
itemClass[] m = new itemClass[1500];
int i = 0;
while ((line = reader.readLine()) != null) {
m[i].index = line; // crash is here
m[i].location = reader.readLine();
m[i].item = reader.readLine();
m[i].description = reader.readLine();
i++;
}
//Print the entire list
for (i = 0; i == 1499; i++) {
System.out.println(m[i].index);
System.out.println(m[i].location);
System.out.println(m[i].item);
System.out.println(m[i].description);
//System.out.println("This is item #" + i + 1);
}
}
}
下面是itemClass:
package sandboxPackage;
public class itemClass{
String index;
String item;
String description;
String location;
}
文本文件如下所示: 指数 地方 项目 描述 指数 地方 项目 描述 指数
编译器声称NullPointerException位于第20行,这是while循环的第一行,但我没有看到它。我已经看了一千多个类似错误的例子,但对我来说仍然无法计算
# 1 楼答案
对象类型数组中的元素默认为
null
。在尝试为元素的字段赋值之前,先初始化元素# 2 楼答案
初始化
itemClass
数组是的,但从未用itemClass
对象填充它。首先,在分配属性之前,必须创建一个itemClass
。试试这个# 3 楼答案
您只是在声明一个对象数组:
但你永远不会实例化这个数组中的对象。因此,访问中的任何实例变量都会抛出
NullPointerException
在循环中添加数组对象的实例化: