Bean -> Csv с отображением пользовательских значений с помощью OpenCSV

#java #opencsv

Вопрос:

Есть ли способ с помощью OpenCSV преобразовать поле класса в csv-столбец пользовательским способом, без необходимости в пользовательских DTO или дополнительных пользовательских полях?

Я пытаюсь преобразовать внутреннее строковое представление в удобочитаемое представление при сериализации компонента в csv.

Я попытался использовать CsvCustomBindByName для этой цели:

 @CsvCustomBindByName(column = "My Column", converter = MyColumnConverter.class)
private String myColumnInternal;
 

где:

 public class MyColumnConverter extends AbstractBeanField {
    @Override
    protected Object convert(String code) throws CsvDataTypeMismatchException, CsvConstraintViolationException {
        return code   " foo bar";
    }
}
 

Однако мой пользовательский метод преобразования не собирается во время сериализации bean -> csv.
Для полноты картины — это мой код сериализации:

 ColumnPositionMappingStrategy<MyType> mappingStrategy = new ColumnPositionMappingStrategy();
mappingStrategy.setType(MyType.class);
StatefulBeanToCsv<MyType> beanToCsv = new StatefulBeanToCsvBuilder<MyType>(writer)
        .withMappingStrategy(mappingStrategy).build();
beanToCsv.write(Collections.singletonList(MyType));