Объект Transforming Point при использовании simple-xml
-
22-07-2019 - |
Вопрос
Я сериализую класс с использованием 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 # конвертеры