得到一个奇怪的NullPointerException

时间:2013-11-29 16:55:43

标签: 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 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

再次感谢

1 个答案:

答案 0 :(得分:0)

Array已初始化,但位置'id'的ItemDefinition未初始化。到目前为止它是null,因此在它上面调用一个setter函数会导致一个空指针。

尝试创建新的ItemDefinition

    ItemDefinition  anObj= new ItemDefinition();
    anObj.setterFunctions(...);
    definitions[id]=anObj

希望这有效。