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 に答える