【发布时间】:2010-12-18 03:35:09
【问题描述】:
我从无法控制的外部来源获得了 xsd。现在我们想向 JAXB 生成的类添加自定义方法,这样对象就可以更多地了解自己,而不是成为一个带有 getter 和 setter 的简单 POJO。
这个想法就像一旦我们实现了这种类型的方法,我们就不需要深入了解水合对象,而是通过调用自定义方法向对象询问我们需要的特定信息并且可以获得我们想要的东西?
当然还有传统的编程方法,在这种方法中,我不断深入研究根对象的子对象的子对象,对每个子对象调用 getter 方法并实现业务逻辑。但不知何故,这里的团队不希望这样。
到目前为止,我采用的一种方法是蛮力方法。就像我使用 JAXB 从 XSD 生成类一样。然后我有一个外部实用程序(现在这是一个独立的 java 程序),它在运行时会读取特定目录中的一些文本文件(以我们自己的方式构造,以找出应该使用哪个方法以及进入哪个 .java 文件)它包含自定义方法,并将这些方法移动到适当的 JAXB 生成的类。每次获得新版本的 XSD 时,我都需要生成类、调用此实用程序并可能解决一些编译问题等,以防 JAXB 生成的类中有一些变量更改。该实用程序运行良好。但我想知道这个。
有没有更好的方法来做到这一点?我检查了互联网。给出了一些解决方案,但它们只是覆盖 JAXB 生成的对象中现有的 get 方法,而不是添加全新的方法。
请提出建议。
【问题讨论】: