2014-11-06 46 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