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