Mar*_*iuk 11 java collections xml-serialization simple-framework
我尝试使用简单的序列化嵌入式集合.例如 :
Map<String, List<MyClass>>
Run Code Online (Sandbox Code Playgroud)
我已经在MyClass中添加了必要的注释,我尝试使用@ElementMap但它不起作用:
Exception in thread "main" org.simpleframework.xml.transform.TransformException: Transform of class java.util.ArrayList not supported
如果它只是
@ElementMap Map<String, MyClass>
Run Code Online (Sandbox Code Playgroud)
它工作正常.我不知道如何处理嵌入式收藏.我知道@ElementList注释但在这种情况下不知道如何使用它.任何提示?
H.Y*_*.Y. 11
我遇到了同样的问题.我设法让它工作的唯一方法是一个非常俗气的黑客 - 在另一个类中包装List.
public class MyWrapper {
@ElementList(name="data")
private List<MyClass> data = new ArrayList<MyClass>();
public MyWrapper(List<MyClass> data) {
this.data = data;
}
public List<MyClass> getData() {
return this.data;
}
public void setData(List<MyClass> data) {
this.data = data;
}
}
Run Code Online (Sandbox Code Playgroud)
然后,而不是
@ElementMap Map<String,List<MyClass>>
Run Code Online (Sandbox Code Playgroud)
......你有:
@ElementMap Map<String,MyWrapper>
Run Code Online (Sandbox Code Playgroud)
在我的情况下,Map对我的类来说是完全私有的(即其他类永远不会直接与Map对话),所以我在这里有这个额外的层并没有太大的区别.当然,生成的XML是粗略的,但在我的情况下,它是可以忍受的,因为我的课程之外没有任何东西可以消耗它.希望我有一个比这更好的解决方案,但此刻,我很难过.
| 归档时间: |
|
| 查看次数: |
6035 次 |
| 最近记录: |