Вопрос

Я сериализую класс с использованием simple-xml ( http://simple.sourceforge.net/ ) но когда я пытаюсь использовать @Element для объекта Point, я получаю сообщение об ошибке, как я могу преобразовать этот объект 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, чтобы он мог разрешить преобразование с учетом класса. Преобразования используются только для примитивов, таких как атрибуты или текстовые значения. Они не должны использоваться для создания 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/ поток / DOC / учебник / tutorial.php # конвертеры

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top