OpenCSV - 注册自定义转换器

OpenCSV - register custom converter

所以我正在使用 opencsv 将 csv 转换为 bean。 这一切都适用于原始值,但我想使用枚举,这会带来一些问题。

我正在查看代码,看来我需要完全实现一个新的映射策略来执行此操作,只是为了设置一个自定义转换器。有更好的方法吗?

当前转换代码:

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

我在 2012 年发现了一些与此相关的问题,但答案不再适用于当前的 opencsv 版本 (4.2)。

因此,在我有一堆基元但我想要一个复杂对象(具有嵌入对象的对象)的类似情况下,我所做的就是拥有一个中间对象。我称它们为 DTO(数据传输对象),虽然我确信有一个更合适的名称,openCSV 将填充,然后 DTO 可以从它包含的基元构建我想要的复杂对象。

好的,原来有一个 @CsvCustomBindByName(column = 'foo', converter = Bar.class)

完全符合我要求的注释。这个 class 只需要是类型 <T> extends AbstractBeanField<T>