Mapping 超级CSV和多bean映射

Mapping 超级CSV和多bean映射,mapping,supercsv,Mapping,Supercsv,我遇到了一个使用超级CSV映射多个bean的问题。我得到了一个csv文件,包含多个bean的信息(每行)。但正如我从网站上的示例中所看到的,只可能将每一行映射到一个bean(而不是两个或多个bean) 有没有办法做到这一点?我能想到的唯一方法是创建一个新bean,包含我需要的所有bean,并进行深度映射,即: class MultiBeanWrapper { Address addreass; BankAccount bankAccount; } ... String[]

我遇到了一个使用超级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));
我没有尝试这个,因为我想确定没有其他/更好的方法

谢谢你的帮助
丹尼尔

不,你不能把一行读成多个bean-对不起!(我甚至不确定这会是什么样子-你会得到一个
列表吗?

您有几个选择:

  • 在对象之间添加关系

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

  • 添加公共父对象

    然后可以使用类似于
    parent.child1.fieldA、parent.child2.fieldB的映射。这是您的建议,但我建议给它起一个比
    Wrapper
    更好的名字-在我看来,它就像一个客户


  • 哦,我建议在发帖之前先尝试一下——通常你会回答自己的问题,或者能够给出更多的细节,这会让你得到更好的答案

    谢谢,我试试你的第二个选择。