Mapping 超级CSV和多bean映射
我遇到了一个使用超级CSV映射多个bean的问题。我得到了一个csv文件,包含多个bean的信息(每行)。但正如我从网站上的示例中所看到的,只可能将每一行映射到一个bean(而不是两个或多个bean) 有没有办法做到这一点?我能想到的唯一方法是创建一个新bean,包含我需要的所有bean,并进行深度映射,即:Mapping 超级CSV和多bean映射,mapping,supercsv,Mapping,Supercsv,我遇到了一个使用超级CSV映射多个bean的问题。我得到了一个csv文件,包含多个bean的信息(每行)。但正如我从网站上的示例中所看到的,只可能将每一行映射到一个bean(而不是两个或多个bean) 有没有办法做到这一点?我能想到的唯一方法是创建一个新bean,包含我需要的所有bean,并进行深度映射,即: class MultiBeanWrapper { Address addreass; BankAccount bankAccount; } ... String[]
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
更好的名字-在我看来,它就像一个客户
哦,我建议在发帖之前先尝试一下——通常你会回答自己的问题,或者能够给出更多的细节,这会让你得到更好的答案 谢谢,我试试你的第二个选择。