Java 得到一个奇怪的NullPointerException
我不知道为什么会这样,这里有一个例外:Java 得到一个奇怪的NullPointerException,java,exception,nullpointerexception,Java,Exception,Nullpointerexception,我不知道为什么会这样,这里有一个例外: Exception in thread "main" java.lang.NullPointerException at org.dementhium.model.definition.ItemDefinition.loadMiscData(ItemDefinition.java:126) at org.dementhium.model.definition.ItemDefinition.init(ItemDefinition.java:104) at o
Exception in thread "main" java.lang.NullPointerException
at org.dementhium.model.definition.ItemDefinition.loadMiscData(ItemDefinition.java:126)
at org.dementhium.model.definition.ItemDefinition.init(ItemDefinition.java:104)
at org.dementhium.model.World.load(World.java:127)
at org.dementhium.RS2ServerBootstrap.main(RS2ServerBootstrap.java:43)
以下是我的loadmiscdata方法:
private static void loadMiscData() throws IOException {
BufferedReader reader = new BufferedReader(new FileReader("data/item/poisoningitems.txt"));
String string;
while ((string = reader.readLine()) != null) {
String[] data = string.split(":");
int id = Integer.parseInt(data[0]);
int amount = Integer.parseInt(data[1]);
definitions[id].setPoisonAmount(amount);
}
reader = new BufferedReader(new FileReader("data/item/equipIds.txt"));
while ((string = reader.readLine()) != null) {
String[] data = string.split(":");
int id = Integer.parseInt(data[0]);
int equipId = Integer.parseInt(data[1]);
definitions[id].setEquipId(equipId);
}
}
第126行:
definitions[id].setEquipId(equipId);
这是我的equipids文件的一部分(不会全部发布,因为它太大了):
我不知道为什么我会得到这个例外
提前感谢:)
对不起,我忘了发布定义
这是:
private static ItemDefinition[] definitions;
definitions = new ItemDefinition[MAX_SIZE];
最大尺寸=20792 btw
全班同学请看这里:
再次感谢数组已初始化,但位置“id”处的ItemDefinition未初始化。到目前为止它是空的,因此对它调用setter函数会导致空指针 尝试创建一个新的ItemDefinition
ItemDefinition anObj= new ItemDefinition();
anObj.setterFunctions(...);
definitions[id]=anObj
希望这能起作用。要么
定义为空,要么定义[id]
为空。使用调试器逐步检查代码以找出它。向我们显示定义的定义
请猜定义[id]
或equipId
中的任何一个都是null
。对于“比猜测更好”,请发布一个。id和equipId都不能为null,因为它们是原语(如果数据为null,则应存在数字格式异常),因此我认为这是定义
或定义[id]
。在调试器中设置异常断点,您将找到您寻求的答案。
ItemDefinition anObj= new ItemDefinition();
anObj.setterFunctions(...);
definitions[id]=anObj