2014-11-06 75 views
-1

當我想寫與opencsv libary一個csv,但是,當運行代碼時,我收到了NullPointerExceptionNullPointerException異常寫csv文件

public void exportToCSV(ArrayList<Data> list) throws IOException { 
     log.info("write CSV file"); 

     String writerPath = "C:\\Users\\User\\Desktop\\Output\\output.csv"; 

     CSVWriter writer = new CSVWriter(new FileWriter(writerPath), ';'); 

     //headers 
       String [] entries = {"ID", "Date"}; 

     writer.writeNext(entries); 

     List<String[]> data = new ArrayList<String[]>(); 
     for (int m = 0; m < list.size(); m++) { 
      data.add(new String[] { 
        list.get(m).getID, 
        (list.get(m).getDate().toString()==null) ? "null" : list.get(m).getDate().toString(), //Here i get the NullPointerException 
      }); 
     } 
     writer.writeAll(data); 
     writer.close(); 
    } 

我想這getDate()爲空,這類型是Timestamp。但是,當getDate()null時,爲什麼我建議的解決方案無法編寫String

我apprecaite您的回覆!

+0

你爲什麼「猜測」。在哪一行是拋出的異常?您是否使用調試器來查看實際爲空的內容? – gefei 2014-11-06 07:25:39

+0

由於getDate()返回null,因此無法在其上調用toString()。咄。 – 2014-11-06 07:28:38

+0

參見['NullPointerException'](http://docs.oracle.com/javase/7/docs/api/java/lang/NullPointerException.html),其中幾乎文檔的第一行被「調用該實例空對象的方法「。 – 2014-11-06 07:30:14

回答

1

list.get(m).getDate().toString()==null應改爲list.get(m).getDate()==null

如果list.get(m).getDate()null。在其上調用方法將導致NullPointerException