JAXB中的java.awt.Point和java.awt.Rectangle

时间:2015-08-18 10:58:26

标签: java jaxb

我想我可能会尝试JAXB来处理存储和恢复设置。但即使是最简单的"我也遇到了麻烦。例如:

import java.awt.Point;

public class Config {
  public Point myPoint = new Point();
}

从我试过的代码中的其他地方开始:

JAXB.marshal(new Config(), new File("config.xml"));

这会产生一些非常长的堆栈跟踪异常......

这是否意味着,我需要在使用JAXB之前为x,y编写一个包装类?

1 个答案:

答案 0 :(得分:1)

要编组的对象必须注释为JAXB对象。根据JAXB实现,这也可以通过外部映射文件来实现,例如MOXy

您不必编写包装类,只需将@XmlRootElement等必需注释添加到现有类中即可。但是,对于您无法控制的课程(例如java.awt.Point),您可以使用@XmlJavaTypeAdapter,其中一个例子可以找到here