2016-12-20 3 views
0

コードの下の行でヌルポインタ違反が発生しました。ファイルを読み取っているときにソナーがポインタを無効にしています

cell1.getRow()

あなたは私たちがこの問題を解決するのに役立つ可能性があります。セル1は、あなたがもし条件にnullをチェックすると、実際にはnullですが、あなたはまだ枝を入力して、そこにcell1.getRow()にアクセスした場合

private List<InvalidUploadedExcelData> validateSheet(Sheet sheet) throws Exception { 

    InvalidUploadedExcelData ITD; 
    ArrayList<InvalidUploadedExcelData> returnedInvalidTestDataList = new ArrayList<InvalidUploadedExcelData>(); 
    Cell cell1, cell2, cell3; 
    for (int i = 1; i < sheet.getRows(); i++) { 
     cell1 = sheet.getCell(0, i); 
     cell2 = sheet.getCell(1, i); 
     cell3 = sheet.getCell(2, i); 

     if ((cell1 == null || StringUtils.isEmpty(cell1.getContents().trim()))) { 
      ITD = new InvalidUploadedExcelData(TITLE_TEST_ID, "Row-" + (cell1.getRow() + 1) + " Column-" + (cell1.getColumn() + 1) + " is missing"); 
      returnedInvalidTestDataList.add(ITD); 
     } else if (!isValidProperty(cell1.getContents().trim())) { 
      ITD = new InvalidUploadedExcelData(TITLE_TEST_ID + ":" + cell1.getContents().trim(), "Row-" + (cell1.getRow() + 1) + " Column-" + (cell1.getColumn() + 1) + " is not valid"); 
      returnedInvalidTestDataList.add(ITD); 
     } 

    } 

    return returnedInvalidTestDataList; 
} 
+1

重要でないものを削除する、 'if(cell1 == null){cell1.getRow(); } '。あなたは 'ヌル'の*メソッドを呼び出すことができますか? –

答えて

0

次の行がNullPointerExceptionの原因となります。

if ((cell1 == null || StringUtils.isEmpty(cell1.getContents().trim()))) { 
     ITD = new InvalidUploadedExcelData(TITLE_TEST_ID, "Row-" + (cell1.getRow() + 1) + " Column-" + (cell1.getColumn() + 1) + " is missing"); 

この場合、行/列情報を別にして安全にする必要があります。

関連する問題