OpenCSV - зарегистрировать пользовательский конвертер - PullRequest
0 голосов
/ 26 июня 2018

Так что я использую opencsv для преобразования csv в бины.Все это прекрасно работает с примитивными значениями, но я хочу использовать перечисления, и это вызывает некоторые проблемы.

Я прохожу код и, похоже, мне нужно полностью реализовать новую стратегию отображения, чтобы сделать это простоустановить пользовательский конвертер.Есть ли лучший способ для этого?

Текущий код для преобразования:

CsvToBean<MyType> csvBean = new CsvToBeanBuilder<MyType>(new FileReader(csvFile))
                 .withType(MyType.class)
                 .withIgnoreLeadingWhiteSpace(true)
                 .withFieldAsNull(CSVReaderNullFieldIndicator.EMPTY_QUOTES)
                 .build();

Я нашел несколько вопросов с 2012 года по этому поводу, но ответы больше не применимы для текущеговерсия opencsv (4.2).

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Хорошо, оказывается, есть @CsvCustomBindByName(column = 'foo', converter = Bar.class)

Аннотация, которая делает именно то, что я хочу.Этот класс просто должен иметь тип <T> extends AbstractBeanField<T>

0 голосов
/ 26 июня 2018

Итак, что я сделал в подобных ситуациях, когда у меня есть куча примитивов, но я хочу, чтобы сложный объект (объект со встроенными объектами) должен иметь промежуточный объект. Я называю их DTO (Объекты передачи данных), хотя я уверен, что для него есть более подходящее имя, которое заполняет openCSV, а затем DTO может построить сложный объект, который я хочу, из примитивов, которые он содержит.

...