【问题标题】:Inheritance object simplexml with android用android继承对象simplexml
【发布时间】:2012-11-21 03:11:41
【问题描述】:

我正在尝试使用 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 的崩溃。

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

【问题讨论】:

  • 在书店 SimpleXML 中,Java 和 Andorid 的实现可能有所不同。我对另一个库 XML 也有类似的问题。 Java SE 和 Android 之间存在差异。
  • 是的,我知道,android 会产生这种头疼...

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2012-01-05
    • 2011-10-08
    • 2013-01-04
    • 2019-01-30
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多