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;