也许我不了解OpenCSV中的captureHeader()方法是什么,但该方法抓取CSV文件的标头并将受保护的“header”变量设置为这些值的String数组。
但是那么如何访问这些标题值以尝试匹配从csv中的“first_name”到Bean中的“firstName”?想法是在实际解析完整的csv文件之前从这些头创建MappingStrategy。但是captureHeader()是一个空格,'header'是受保护的吗?
答案 0 :(得分:5)
您需要实施captureHeader
方法并将string[] header
存储在列表中。您现在可以遍历此列表并根据您的bean进行映射。
示例:
public void captureHeader(CSVReader reader){
super.captureHeader(reader);
List<String> csvHeader = Arrays.asList(header);
//iterate through the list
}
您也可以使用HeaderColumnNameTranslateMappingStrategy
完成任务。请参阅我的回答here。