Question

Je suis en train de sérialiser une classe en utilisant simple-xml ( http://simple.sourceforge.net/ ) mais quand j’essaie d’utiliser @Element sur un objet Point, j’obtiens une erreur, comment puis-je transformer cet objet Point?

Était-ce utile?

La solution

Vous pouvez créer une transformation comme ceci

public class PointTransform implements Transform<Point> {

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

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

  // etc ...
}

Ensuite, passez un Matcher au constructeur Persister afin qu’il puisse résoudre votre transformation en fonction de la classe. Les transformations ne sont utilisées que pour les primitives, comme les valeurs d'attribut ou de texte. Ils ne doivent pas être utilisés pour composer du XML, car il ne sera échappé que s'il est écrit dans le document résultant. Il vaut mieux utiliser des annotations comme ceci.

@Root
public class Point {

  @Attribute
  private int x;

  @Attribute
  private int y;

  public int getX() {
     return x;
  }

  public int getY() {
     return y;
  }
}

Autres conseils

Vous pouvez utiliser un convertisseur pour sérialiser des objets nécessitant des éléments XML complets (plutôt que de simplement avoir une représentation textuelle). Voir:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top