【发布时间】:2021-09-01 10:27:47
【问题描述】:
我有这样的课:
data class BeanClass (
@CsvBindByName(column = "Id")
val id: Long = -1,
)
并使用它来将其转换为 ID 列表
val recommendationUpdateList = CSVUtils.convertToBean(file, BeanClass::class.java)
CSVUtils.convertToBean 看起来像这样:
public static <T> List<T> convertToBean(File file, Class<T> bean) throws IOException {
List<T> csvData = null;
try (Reader reader = new FileReader(file)) {
HeaderColumnNameMappingStrategy<T> strategy =
new HeaderColumnNameMappingStrategy<T>();
strategy.setType(bean);
CsvToBean<T> cb = new CsvToBeanBuilder<T>(reader)
.withType(bean)
.withFieldAsNull(CSVReaderNullFieldIndicator.BOTH)
.withMappingStrategy(strategy)
.build();
csvData = cb.parse();
}
return csvData;
}
现在当我上传这样的 CSV 时,它工作正常
Id
2
但是,我希望它在使用以下 CSV 时引发错误(注意 CSV 标头的名称已更改)
Kd
2
请建议一种方法,可以根据 bean 列标题验证 csv 的标题。它目前正在做的是选择默认值 -1,在我的用例中我也无法根据默认值进行验证。
【问题讨论】: