gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 08:55:53 26 4
gpt4 key购买 nike

嘿伙计们,希望这里是一个简单的好东西。

我正在使用 JAXB 从架构生成类,并且我希望能够使用访问者模式来处理它们。

为此,我认为我需要每个 JAXB 生成的类来实现我定义的接口(interface),并向它们添加一个非常简单的方法,因此一个简单的示例是:

默认类:

public class MyClass {
private String name;

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

想要的类(class):

public class MyClass implements MyVisitorNode {
private String name;

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

public void accept(MyVisitorVisitor visitor) {
visitor.visit(this);
}
}

这可能吗?如果可能,有哪些选择? (更改架构、运行时字节码操作、以某种方式操作 JAXBContext...)

理想情况下,不依赖于特定于供应商的扩展。

谢谢!

最佳答案

JAXB 的 xjc 编译器有一个插件接口(interface),允许开发人员创建修改生成代码的插件。我个人最喜欢的是 Fluent-api,但还有其他的可以添加 toString、equals、hashCode 等。

我使用该技术创建了一个插件来实现访问者模式,并将其作为谷歌代码项目提供。它可能不完全是您正在寻找的内容,但如果您需要修改代码以满足您的需求,那么它可能是开始检查代码和测试的好地方。

http://code.google.com/p/jaxb-visitor/

关于jaxb - 如何使 JAXB 生成的类参与访问者模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4969045/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com