1

我正在尝试使用 simplexml 反序列化使用 java 工作的对象和代码在 Android 上不起作用。

简单的类:

@Root    
public class GenericContainer
{
  @Element
  public MainEntity el;
}

声明如下:

GenericContainer genContainer = new GenericContainer();
genContainer.el = new SubClassBEntity(); //SubClassBEntity is a Subclass of MainEntity

被序列化并生成一个xml:

<?xml version='1.0' encoding='utf-8'?>
<genericContainer>
  <el class="test.entities.SubClassBEntity>
    <x>1</x>
  </el>
</genericContainer>

如果我尝试使用 java 反序列化 xml 一切正常,但如果我使用 android 执行相同操作,我会在异常消息所在的位置崩溃test.entities.SubClassBEntity

任何想法来解决这个问题?谢谢

4

1 回答 1

1

我发现的唯一解决方案是使用@ElementUnion将所有可能性放入其中。这是一个肮脏的解决方案,因为您可以拥有一个包含 50 个子类的基类,而您必须将所有子类都放入其中。自动重构不会改变注解,它会是一段容易出错的代码。

于 2012-12-03T16:56:56.820 回答