【问题标题】:Transforming Point object when using simple-xml使用 simple-xml 时转换点对象
【发布时间】:2010-10-01 04:54:12
【问题描述】:

我正在使用 simple-xml (http://simple.sourceforge.net/) 序列化一个类,但是当我尝试在 Point 对象上使用 @Element 时出现错误,我该如何转换这个 Point 对象?

【问题讨论】:

  • 顺便问一下,你在使用@Element的时候会遇到什么异常?

标签: java object serialization point simple-framework


【解决方案1】:

你可以像这样创建一个变换

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;
  }
}

【讨论】:

  • 我最终只是实现了自己的 Point 替代方案。
【解决方案2】:

您可以使用转换器来序列化需要完整 XML 元素(而不仅仅是具有文本表示)的对象。见:

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

【讨论】:

    猜你喜欢
    • 2023-03-31
    • 1970-01-01
    • 2017-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多