如何使JAXB生成的类参与访问者模式?

嘿伙计们,希望这里很容易。 我正在从模式中使用JAXB生成类,并且我希望能够使用访问者模式处理它们。 为此,我认为我需要每个JAXB生成的类来实现我定义的接口,并为它们添加一个非常简单的方法,所以一个简单的例子是: 默认类:
public class MyClass {
   private String name;

   public void get/setName() {...}
}
期望的课程:
public class MyClass implements MyVisitorNode {
  private String name;

  public void get/setName() {...}

  public void accept(MyVisitorVisitor visitor) {
    visitor.visit(this);
  }
}
这是可能的,如果可能,有哪些选择? (更改架构,运行时字节码操作,以某种方式操纵JAXBContext ......) 理想情况下,不依赖于特定于供应商的扩展。 谢谢!     
已邀请:
JAXB的xjc编译器有一个插件接口,允许开发人员创建修改生成的代码的插件。我个人最喜欢的是fluent-api,但还有其他人添加toString,equals,hashCode等。 我使用这项技术创建了一个插件来实现访问者模式,并将其作为谷歌代码项目提供。它可能不是您正在寻找的,但它可能是一个开始审查代码和测试的好地方,如果您需要修改它以满足您的需求。 http://code.google.com/p/jaxb-visitor/     
JAX-B生成的类是标准的Java类,您可以以任何方式自定义,例如,扩展接口,添加其他方法等。)。类和属性的注释是编组和解组过程的驱动因素。 如上所述,如果您自定义JAXB生成的类,则需要考虑一些事项。如每个类顶部所述“重新编译源模式时将丢失对此文件的任何修改”。简而言之,如果您自定义类,则需要手动进行代码更改以支持任何架构更新。如果您重新生成了类,那么您的自定义代码将被删除,您将不得不重新开始。     

要回复问题请先登录注册