3

也许我不明白 OpenCSV 中的方法 captureHeader() 的用途,但该方法会抓取 CSV 文件的标题并将受保护的“标题”变量设置为这些值的字符串数组。

但是,您如何访问这些标头值以尝试将 csv 中的“first_name”匹配到您的 Bean 中的“firstName”?这个想法是在实际解析完整的 csv 文件之前从这些标头创建 MappingStrategy 。但是 captureHeader() 是无效的并且“标题”受到保护?

OpenCSV API

4

1 回答 1

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

于 2013-04-08T10:01:24.727 回答