我遇到了使用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));
我没有尝试过,因为我想确保没有其他/更好的方式。
感谢您的帮助 丹尼尔
答案 0 :(得分:2)
不,你不能读一行到多个豆子 - 对不起! (我不确定这甚至会是什么样的 - 你会得到一个List<Object>
吗?)
您有几个选择:
在对象之间添加关系
然后可以使用parent.fieldA, parent.child.fieldB
之类的映射。在您的场景中,Address和BankAccount在语义上不相关,因此我建议您创建一个共同的父级(请参阅下一个选项)
添加公共父对象
然后您可以使用parent.child1.fieldA, parent.child2.fieldB
之类的映射。这是你的建议,但我建议给它一个比Wrapper
更好的名字 - 它看起来像我的客户!
哦,我建议在发布问题之前尝试解决问题 - 通常你会回答你自己的问题,或者能够提供更多细节,以便你得到更好的答案!