将SuperCSV与Dozer(版本2.2.0)一起使用,我已成功将数据映射到List
。但是,我现在有一个案例,我希望映射到List
List
。在我试图映射到的对象中,我有一个看起来像这样的字段:
List<List<String>> myListOfLists;
对于我的字段映射,我这样做了:
&#34; myListOfLists [0] [0]&#34;,&#34; myListOfLists [0] [1]&#34;,&#34; myListOfLists [1] [0]&#34;等等。
但是,这会导致以下错误:
org.dozer.MappingException:找不到字段的读取或写入方法 (myListOfLists [0])在类(类 com.foo.MyClassBeingMappedTo)
我似乎无法找到嵌套集合的任何示例,但似乎这应该是可能的。有没有办法将数据映射到我的List<List<String>>
字段?
答案 0 :(得分:0)
我通过为内部List
创建一个包装类来解决这个问题。我创建了一个这样的内部类:
public static class InnerListWrapper
{
private List<String> innerList;
public List<String> getInnerList()
{
return innerList;
}
public void setInnerList(List<String> innerList)
{
this.innerList = innerList;
}
}
然后我的外List
看起来像这样:
List<InnerListWrapper> myListOfLists;
然后字段映射只是&#34; myListOfLists [0] .innerList [0]&#34;,&#34; myListOfLists [0] .innerList [1]&#34;,&#34;& #34; myListOfLists [1] .innerList [0]&#34;等等
不是最干净的,但就像上面的评论所说,Dozer似乎不支持嵌套列表。所以你必须在两者之间添加另一个类。