2014-02-15 2 views
-2

У меня есть проблема в этом коде:ява нулевая точка исключением, апач пои, Java

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]); 
         } 
        } 
       } 
      } 
     } 

    } 

Там очень много других вещей также происходит в этой функции, но я оставлю его, потому что ему на самом деле не имеет значения.

это как мой основной вид:

public static void main(String[] agrv) throws IOException{ 

     MonthRequirementInformation[] list=null; 
     AdditiveInformation[] list1=null; 

     Workbook inputWb=readWorkbook(); 

     Sheet RequimentWs=inputWb.getSheet("PGEN List");  
     int r=RequimentWs.getLastRowNum()+1; 
     fillMonthReqObj(RequimentWs,r,list); 

     Sheet AdditveWs=inputWb.getSheet("Additive List"); 
     int r1=AdditveWs.getLastRowNum()+1; 
     fillAddInfoObj(AdditveWs,r1,list1); 

     add(list,list1); 
     finalOutput(list1); 


    } 

объяснить проблему: им получить исключение точки ява нуль, на уставились линии в функции добавить, и я понятия не имею, почему это происходит , может кто-нибудь понять, почему это происходит.

+3

'list' - null. Ницца и просто. – christopher

+0

переменная 'list' никогда не создается! – Merlevede

ответ

2

Когда вы их создаете?

MonthRequirementInformation[] list=null; 
AdditiveInformation[] list1=null; 

Вы никогда не создать массив, поэтому при вызове length на объектах, он бросает NPE.

Примечание: A NullPointerException является одним из наиболее распространенных исключений, которые я вижу здесь. В будущем попытайтесь наблюдать, где происходит исключение, какой объект бросает исключение, и если этот объект был запущен. Это помогает исключить очевидную ситуацию, что и произошло сейчас.

+0

они создаются в двух функциях: public static void fillMonthReqObj (лист ws, int r, MonthRequirementInformation [] list); public static void fillAddInfoObj (Sheet ws, int r, AdditiveInformation [] list1); – Anish6595

+0

По-видимому, это не так, поскольку «list» - это объект, бросающий «NPE». Покажите нам код для методов, которые заполняют один из списков. – christopher

+0

О, я понял, я должен назвать эти функции внутри функции add() правильно? – Anish6595

Смежные вопросы