Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 得到一个奇怪的NullPointerException_Java_Exception_Nullpointerexception - Fatal编程技术网

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