Итак, прошло много времени, и вы, вероятно, отошли от этого, но ...
Проблема была в том, что вы не указывали заголовок для метода write()
, то есть он должен быть
writer.write(person, header);
К сожалению, API немного вводит в заблуждение при использовании нотации var-args в сигнатуре метода write()
, поскольку он позволяет передавать null
. В javadoc четко сказано, что вы не должны делать это, но в реализации не было нулевой проверки: отсюда и исключение, которое вы получали.
/**
* Write an object
*
* @param source
* at object (bean instance) whose values to extract
* @param nameMapping
* defines the fields of the class that must be written.
* null values are not allowed
* @since 1.0
*/
public void write(Object source, String... nameMapping) throws IOException,
SuperCSVReflectionException;
Super CSV 2.0.0-бета-1 уже в продаже. Он сохраняет var-args в методе write()
, но быстро завершается с ошибкой, если вы укажете нулевое значение, поэтому вы точно знаете, что не так, когда получаете исключение NullPointerException со следующим:
массив nameMapping не может быть нулевым, поскольку он используется для сопоставления полей с
Столбцы
Также включает в себя множество исправлений ошибок и новые функции (включая поддержку Maven и новое расширение Dozer для отображения вложенных свойств и массивов / коллекций).