OpenCSV - 注册自定义转换器

问题描述 投票:3回答:2

所以我使用opencsv将csv转换为bean。这一切都适用于原始值,但我想使用枚举,这给出了一些问题。

我正在浏览代码,似乎我需要完全实现一个新的mappingstrategy才能设置自定义转换器。有更好的方法吗?

转换的当前代码:

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

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

java enums javabeans opencsv
2个回答
1
投票

好吧,事实证明有一个@CsvCustomBindByName(column = 'foo', converter = Bar.class)

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.