所以我正在使用 opencsv 将 csv 转换为 beans。 这一切都适用于原始值,但我想使用枚举,这会带来一些问题。
我正在查看代码,看来我需要完全实现一个新的映射策略来设置自定义转换器。有更好的方法吗?
当前的转换代码:
CsvToBean<MyType> csvBean = new CsvToBeanBuilder<MyType>(new FileReader(csvFile))
.withType(MyType.class)
.withIgnoreLeadingWhiteSpace(true)
.withFieldAsNull(CSVReaderNullFieldIndicator.EMPTY_QUOTES)
.build();
我在 2012 年发现了一些与此相关的问题,但答案不再适用于当前的 opencsv 版本 (4.2)。
最佳答案
好的,原来有一个 @CsvCustomBindByName(column = 'foo', converter = Bar.class)
注释完全符合我的要求。这个类只需要是类型 <T> extends AbstractBeanField<T>
关于java - OpenCSV - 注册自定义转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51035923/