我在Android上使用simpleXml对对象列表进行序列化/反序列化。以前,我每个人都有30个不同的对象,并且每个对象都有一个包含列表的相关类。为了减少重复的代码,我决定只使用带有@ElementListUnion
注释的列表的类,如下所示:
@ElementListUnion({
@ElementList(entry = "A", inline = true, type = A.class, required=false),
@ElementList(entry = "B", inline = true, type = B.class, required=false),
@ElementList(entry = "C", inline = true, type = C.class, required=false)
})
private List<Object> serializableList;
当元素列表变大时,我注意到在android上反序列化的性能下降了。是否存在另一种形式可以使用另一种注释来执行此操作,或者我必须返回程序的旧实现?
注意:我列表中的所有元素都属于同一类型,
serializableList
可以是List<A>
,List<B>
或List<C>
。谢谢
最佳答案
您可以这样注释类(包含列表):
@Root
public class Example
{
@ElementList
private List<Object> serializableList;
// ...
}
和类(
A
,B
等):@Default
public class A
{
// ...
}
(或者:带有
@Root
的类以及带有@Element
,@ElementList
,...的所需的每个元素)通过这种方式,您可以将所需的所有内容放入列表中。
关于java - SimpleXml @ElementListUnion标记在Android上的性能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14898865/