Java SimpleXml@ElementListUnion标记在Android上的性能

Java SimpleXml@ElementListUnion标记在Android上的性能,java,android,performance,serialization,simple-framework,Java,Android,Performance,Serialization,Simple Framework,我正在将simpleXml与Android一起使用来序列化/反序列化对象列表。以前,我有30个不同的对象,每个对象都有一个包含列表的关联类。为了编写更少的重复代码,我决定只使用带有@ElementListUnion注释列表的类,如下所示: @ElementListUnion({ @ElementList(entry = "A", inline = true, type = A.class, required=false), @ElementList(entry = "B", in

我正在将simpleXml与Android一起使用来序列化/反序列化对象列表。以前,我有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;
@Root
public class Example
{
    @ElementList
    private List<Object> serializableList;

    // ...
}
当元素列表增长时,我注意到android上的反序列化性能会下降。是否存在另一个表单来使用另一个注释执行此操作,或者我必须返回到程序的旧实现

注意:我的列表的所有元素都是相同类型的,serializableList可以是列表、列表或列表


谢谢

您可以对包含列表的类进行如下注释:

@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;
@Root
public class Example
{
    @ElementList
    private List<Object> serializableList;

    // ...
}
或者:使用@Root初始化,并使用@Element、@ElementList、


通过这种方式,您可以将所需的所有内容放入列表。

您使用的是哪个版本,更高版本(如2.7)的ElementListUnion注释的性能要好得多。