2

我正在尝试@Parsed在表单文件中解析带有一些注释的 CSV 文件,但它不起作用。

我正在使用univocity

初始化.java

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);

    }

FireReportFormGeneral.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

但我的输出总是这样的:

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

我肯定做错了什么,但我找不到答案。

谢谢。

编辑:

我解决问题

问题是,例如,如果调用beans.get(index).getAccountName()它会为我返回值。

4

1 回答 1

0

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

例如。

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

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

这能解决你的问题吗?

于 2016-05-31T15:53:57.567 回答