2

我遇到了使用 Super CSV 映射多个 bean 的问题。我有一个 csv 文件,其中包含多个 bean 的信息(每行)。但正如我从网站上的示例中看到的那样,只能将每一行映射到一个 bean(而不是两个或多个 bean)。

有没有办法做到这一点?我能想到的唯一方法是创建一个新bean,包含我需要的所有bean并进行深度映射,即:

class MultiBeanWrapper {

    Address addreass;
    BankAccount bankAccount;

}

...
String[] FIELD_MAPPING = new String[] 
     {address.street, bankAccount.bankNumber};
...
beanReader.read(MultiBeanWrapper.class, processors));

我没有尝试这个,因为我想确定没有其他/更好的方法。

感谢您的帮助丹尼尔

4

1 回答 1

2

不,您不能将一行读入多个 bean - 抱歉!(我不确定这会是什么样子——你会List<Object>回来吗?)

你有几个选择:

  1. 添加对象之间的关系

    然后可以使用类似的映射parent.fieldA, parent.child.fieldB。在您的场景中,地址和银行帐户在语义上不相关,因此我建议创建一个共同的父级(请参阅下一个选项)

  2. 添加公共父对象

    然后你可以使用像parent.child1.fieldA, parent.child2.fieldB. 这是您所建议的,但我建议给它一个更好的名称,而不是Wrapper- 它看起来像我的客户!

哦,我建议在发布问题之前先尝试一下——通常你会回答自己的问题,或者能够提供更多细节来获得更好的答案!

于 2013-12-05T21:33:23.260 回答