2013-04-02 21 views
3

也許我並不理解OpenCSV中captureHeader()方法的用途,但該方法抓取CSV文件的頭文件,並將受保護的「頭文件」變量設置爲這些值的字符串數組。在OpenCSV中使用captureHeader

但是,你如何訪問這些頭值來嘗試匹配你的Bean中的「first_name」從csv到「firstName」?這個想法是在實際解析完整的csv文件之前從這些頭文件創建MappingStrategy。然而captureHeader()是一個void,'header'是受保護的?

OpenCSV API

回答

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