gpt4 book ai didi

java - 向 JAXB 生成的 POJO 添加解码方法

转载 作者:行者123 更新时间:2023-12-02 04:28:18 25 4
gpt4 key购买 nike

我有一堆 XSD,我使用 jaxb maven 插件将它们转换为 POJO。

出于日志记录的目的,我希望有一个直接集成在 JAXB 对象内部的“unmarshal”方法,以便我可以调用类似 generatedPOJO.toXMLString() 的方法,知道 generatedPOJO 是通过 JAXB 从 XSD 文件生成的 POJO。

我试图查看 Custom bindings documentation ,但我却一无所获。

感谢您的帮助。

编辑:我想要的是,JAXB 除了从 XSD 文件生成 POJO 之外,还向这些 POJO 添加一个 toXMLString() 方法。

这个方法需要由JAXB生成,因为我无法编辑生成的POJOS。

最佳答案

总之,不要这样做,这不会是一个好的设计。

正如 @j.con 所指出的,可以使用 -xinject-code 向生成的类添加更多方法。或者自定义 XJC 插件,添加编码方法并不是一个好主意。使用 JAXB API,它会非常难看。

要执行任何操作,您都需要一个 JAXBContext 实例。您可以将其传递给您的方法,也可以在方法中实例化。

后者不太好,因为 JAXBContext 是为类或包的集合(上下文路径)实例化的。因此,您基本上必须预设您的类可以与哪些类一起使用。这样做就会失去灵 active 。

接下来,JAXB 编码器会生成许多东西,不仅仅是字符串/流结果,还有 DOM 或 SAX 或 StAX。 JAXB API 在这方面非常酷。只选择字符串似乎是一个短视的选择。

最后,我认为与简单的实用服务或类相比,添加 toXMLString() 或其他内容并不是那么甜蜜的语法糖。为此而侵入代码生成确实感觉像是错误的努力。

关于java - 向 JAXB 生成的 POJO 添加解码方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31859059/

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