使用表单中的@Parsed注释解析CSV文件 - Univocity解析器

时间:2016-05-31 14:42:13

标签: java csv univocity

我正在尝试使用表单文件中的某些univocity注释解析CSV文件,但它无效。

我正在使用public static void main(String[] args) throws FileNotFoundException { CsvParserSettings parserSettings = new CsvParserSettings(); BeanListProcessor<FireReportFormGeneral> rowProcessor = new BeanListProcessor<FireReportFormGeneral>(FireReportFormGeneral.class); parserSettings.setRowProcessor(rowProcessor); parserSettings.setHeaderExtractionEnabled(true); CsvParser parser = new CsvParser(parserSettings); parser.parse(new FileReader("/home/jose/Desktop/example.csv")); List<FireReportFormGeneral> beans = rowProcessor.getBeans(); System.out.println(rowProcessor.getHeaders()); System.out.println(beans); } lib

  

Init.java

@Parsed(field = "Account Number")
    private String accountNumber;

    @Parsed(field = "Account Type")
    private String accountType;

    @Parsed(field = "Bank Client Identification Number")
    private String bankClientIdNumber;

    @Parsed(field = "Account Opening Date")
    private String accountOpeningDate;

    //getters and setters
  

FireReportFormGeneral.java

beans.get(index).getAccountName()

但我的输出总是如下:

  

[Ljava.lang.String; @ 7591083d   [com.opessoftware.fire.csv.reader.FireReportFormGeneral@77a567e1,   com.opessoftware.fire.csv.reader.FireReportFormGeneral@736e9adb]

我确实做错了什么,但我找不到答案。

感谢。

编辑:

我解决了问题

问题是如果来电@Config(emulateSdk = 18) public class Test { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { //test some block of code } } ,例如它会为我返回值。

1 个答案:

答案 0 :(得分:0)

您可以将一个toString()方法添加到FireReportFormGeneral.java,然后您的System.out.println()应该更具可读性。

例如

public String toString(){
return "Account number: " + accountNumber + " Account Type: " + accountType;
}

这只是一个简单的例子,没有空检查,StringBuilder等......

这会解决您的问题吗?