java空点异常,apache poi,java

java空点异常,apache poi,java,java,nullpointerexception,apache-poi,Java,Nullpointerexception,Apache Poi,我在这段代码中有一个问题: public static void add(MonthRequirementInformation[] list,AdditiveInformation[] list1) throws IOException{ **for(int i=0;i<list.length;i++){** for(int j=0;j<PGENcode.length;j++){ if(list[i].getPGEN()

我在这段代码中有一个问题:

public static void add(MonthRequirementInformation[] list,AdditiveInformation[] list1) throws IOException{

**for(int i=0;i<list.length;i++){**

            for(int j=0;j<PGENcode.length;j++){

                if(list[i].getPGEN()==PGENcode[i]){

                    **for(int k=0;k<list1.length;k++){**

                        if(list1[k].getComponentCode()==AdditiveCode[j]){

                            list1[k].change_xMonthReq(list[i].getMonthx()*AdditiveAmount[j]);
                            list1[k].change_yMonthReq(list[i].getMonthy()*AdditiveAmount[j]);
                            list1[k].change_zMonthReq(list[i].getMonthz()*AdditiveAmount[j]);
                        }
                    }
                }
            }
        }

    }
要解释这个问题: 我在函数add的开始行中遇到了一个java空点异常,我不知道为什么会发生这种情况。
任何人都能弄清楚为什么会发生这种情况。

您什么时候实例化这些

MonthRequirementInformation[] list=null;
AdditiveInformation[] list1=null;
您从不创建数组,因此当您对对象调用
length
时,它会抛出一个
NPE


注意:一个
空点异常
是我在这里看到的最常见的异常之一。以后,尝试观察异常发生的位置、抛出异常的对象以及该对象是否已声明。这有助于排除明显的情况,即现在发生的情况。

list
为空。非常简单。变量“list”从未被实例化过!它们在两个函数中实例化:publicstaticvoidfillmonthreqobj(sheetws,intr,MonthRequirementInformation[]list);公共静态无效填充AddInfo对象(活页ws,int r,AdditiveInformation[]列表1);显然它们不是,因为
list
是抛出
NPE
的对象。向我们展示填充其中一个列表的方法的代码。哦,我明白了,我应该在函数add()中调用这些函数,对吗?而不是在main()中调用它们?不,如果需要,可以在调用之前调用它。数组是Java对象的一种类型,因此更新对象将反映在对该
对象的所有引用中。
MonthRequirementInformation[] list=null;
AdditiveInformation[] list1=null;