質問

simple-xmlを使用してクラスをシリアル化しています( http://simple.sourceforge.net/ )しかし、Pointオブジェクトで@Elementを使用しようとするとエラーが発生しますが、このPointオブジェクトを変換するにはどうすればよいですか?

役に立ちましたか?

解決

次のような変換を作成できます

public class PointTransform implements Transform<Point> {

  public Point read(String value) {
     return fromString(value);
  }

  public String write(Point value)  {
     return toString(value);
  }

  // etc ...
}

次に、MatcherをPersisterコンストラクターに渡して、クラスが指定されたTransformを解決できるようにします。変換は、属性やテキスト値などのプリミティブにのみ使用されます。結果のドキュメントに書き込まれた場合にのみエスケープされるため、XMLの作成には使用しないでください。そのような注釈を使用するのが最適です。

@Root
public class Point {

  @Attribute
  private int x;

  @Attribute
  private int y;

  public int getX() {
     return x;
  }

  public int getY() {
     return y;
  }
}

他のヒント

コンバータを使用して、テキスト表現だけでなく、完全なXML要素を必要とするオブジェクトをシリアル化できます。参照:

http://simple.sourceforge.net/download/ stream / doc / tutorial / tutorial.php#converters

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top