simple-xmlを使用する場合のPointオブジェクトの変換
-
22-07-2019 - |
質問
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
所属していません StackOverflow