1

我在 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 是 a或.List<A>List<B>List<C>

谢谢

4

1 回答 1

0

您可以像这样注释类(包含列表):

@Root
public class Example
{
    @ElementList
    private List<Object> serializableList;

    // ...
}

和类(AB):

@Default
public class A
{
    // ...
}

(或者:类@Root和你需要的每个元素,,,@Element... @ElementList

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

于 2013-02-18T17:44:51.830 回答