也许我不明白 OpenCSV 中的 captureHeader() 方法是做什么用的,但该方法获取 CSV 文件的 header 并将 protected “ header ”变量设置为这些值的字符串数组。
但是您如何访问这些 header 值以尝试将 csv 中的“first_name”与 Bean 中的“firstName”相匹配?想法是在实际解析完整的 csv 文件之前从这些 header 创建 MappingStrategy。但是 captureHeader() 是空的,'header' 是 protected 吗?
最佳答案
您需要实现captureHeader
方法并将string[] header
存储在列表中。您现在可以遍历此列表并根据您的 bean 进行映射。
例子:
public void captureHeader(CSVReader reader){
super.captureHeader(reader);
List<String> csvHeader = Arrays.asList(header);
//iterate through the list
}
您还可以使用 HeaderColumnNameTranslateMappingStrategy
来完成您的任务。引用我的回答here .
关于java - 在 OpenCSV 中使用 captureHeader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15775729/