不确定我为什么会这样,这是例外:
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文件的一部分(不会发布所有因为它的巨大):
20282:5106
20284:5107
20288:5108
20290:5109
20294:5110
20296:5111
20300:5112
20302:5113
20306:5114
20308:5115
20312:5116
20314:5117
20318:5118
20320:5119
20324:5120
20326:5121
20330:5122
20332:5123
20336:5124
20338:5125
20342:5126
20344:5127
我不知道为什么我会得到这个例外...
提前致谢:)
抱歉,我忘了发布定义 这是:
private static ItemDefinition[] definitions;
definitions = new ItemDefinition[MAX_SIZE];
MAX_SIZE = 20792 btw
整个课程在这里查看:http://pastebin.com/rvyMp42q
再次感谢
答案 0 :(得分:0)
Array已初始化,但位置'id'的ItemDefinition未初始化。到目前为止它是null,因此在它上面调用一个setter函数会导致一个空指针。
尝试创建新的ItemDefinition
ItemDefinition anObj= new ItemDefinition();
anObj.setterFunctions(...);
definitions[id]=anObj
希望这有效。