gpt4 book ai didi

java - 将 XML 导入到 Java - 与自定义读取文件相比,使用 JAXB 有哪些优势?

转载 作者:行者123 更新时间:2023-12-01 10:36:41 25 4
gpt4 key购买 nike

我很容易就找到了用于将 XML 导入到 Java 代码中的 JAXB,但是,在仔细研究了它之后,我开始怀疑它是否超出了我真正需要的范围。

它应该是我或其他用户创建的相当简单的 XML。例如:

<Type>Armor Material</Type> //could be various types of parent objects
<Name>Steel</Name> //object properties
<Toughness>10</Toughness>

<Type>Armor Material</Type>
<Name>Iron</Name>
<Toughness>7</Toughness>

关于我的问题的背景:我有一个用 Java 编写的游戏,目标是在 XML 中定义许多特定类型的对象。我希望使 XML 尽可能简单,以便于用户修改。

我知道如何读取文件来创建我自己的自定义解决方案 - 但我从未处理过编码/解码和 JAXB。我不会撒谎 - 它的某些内容让我感到害怕,也许是因为它看起来像一个我不太理解的“黑匣子”。

与实现我已经知道可以开始工作的解决方案相比,争论学习如何让它发挥作用是否有明显的优势?

最佳答案

您肯定想使用 JAXB。

无论您的 XML 是简单还是复杂,都可以编写 XML 架构 (xsd) 文件。无论如何,您都需要架构文件,这样您就可以验证您正在读取的文件。使用 xjc(JAXB 的一部分)为 XML 模式的所有元素(包括 setter/getter)生成 Java 类。然后,读取或写入 XML 文件就是一行代码。

由于 XML 文件映射到 Java 对象或从 Java 对象映射,因此在 Java 中操作这些数据结构(创建或使用它们)非常容易。

JAXB 是一个插件架构,有很多开源插件可以用来增强生成的类。默认情况下,JAXB 自动生成所有的 setter/getter,但是有一些插件可以生成 equals/hashcode、fluid-style 方法、clone 等。甚至有一个插件 (hyperjaxb3) 可以在生成的类上添加 JPA 注释,所以你可以基于 XML 模式去 XML->Java->数据库->Java->XML。

我曾经参与过使用 JAXB 生成 POJO 的项目,尽管我们不需要 XML - 与 POJO 的所有 Java 代码相比,它编写起来更快并且更容易维护 XML 模式。

关于java - 将 XML 导入到 Java - 与自定义读取文件相比,使用 JAXB 有哪些优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34665556/

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