java - android继承对象simplexml

标签 java android xml-serialization xml-deserialization simple-framework

我正在尝试使用 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

有解决这个问题的办法吗? 谢谢

最佳答案

我找到的唯一解决方案是使用 @ElementUnion 将所有可能性放入其中。这是一个肮脏的解决方案,因为你可以有一个包含 50 个子类的基类,你将不得不把所有的。自动重构不会更改注释,这将是一段容易出错的代码。

关于java - android继承对象simplexml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13686881/

相关文章:

java - 比较两种选择排序方法

android - 处理多个 TextView 的 if 语句的更好方法?

c# - 如何将多个对象序列化为现有的 XmlDocument,而无需在每个组件上设置 namespace ?

c# - 用于序列化的无参数构造函数与具有默认参数的构造函数相结合,为什么它有效?

java - 如果在模式结束之前发现某些内容,我如何跳过/取消匹配的正则表达式?

java - 如何从 do while 循环返回值

java - 创建新的 POI 工作簿但不保存它

c# - 在monodroid webview中加载带有pdf的url

java - 在 android studio 上的 cardview 上面对 Java.lang.NullPointerEXception

c# - 具有不同类的通用列表 XML 序列化