【问题标题】:Java Enum with XML Beans?带有 XML Bean 的 Java 枚举?
【发布时间】:2011-02-10 08:08:48
【问题描述】:

当使用Apache XML Beans 从 xsd:enumeration 类型生成类型时,XMLBeans 生成自定义类,这些类不是 Java 5 枚举,而是某种特殊类来表示枚举。

可能是这种情况,因为 XMLBeans 早于 Java 5 并且当时没有枚举,或者您仍然希望保持 Java 1.4 的兼容性。但是,我想获得“真正的”枚举类型,所以我的问题是:有没有办法使用 Apache XML Beans 生成 Java 5 枚举?

Jaxb 按照我的意愿执行此操作,但我不确定我是否要删除 XMLBeans 并仅为该细节引入 Jaxb。)

【问题讨论】:

    标签: java enums xsd jaxb xmlbeans


    【解决方案1】:

    我不认为你可以用 XML bean 实现你想要的。你自己也提到了原因。我建议你搬到 JaxB。

    但如果您真的希望继续使用 XML bean,我建议您使用补丁。您可以对生成的类进行后处理并将它们转换为枚举。我过去使用 ant 任务做过类似的事情。有 ant 任务知道执行字符串替换,所以这不是问题。在更糟糕的情况下,您可以在 java 中实现自己的任务。但我相信你没有。我认为这是最简单的解决方案。

    祝你好运。

    【讨论】:

    • 感谢您的回答。是的,我提到了他们最初不包括在内的原因。但是,我希望他们可以添加一些标志来启用 Java 5 功能。
    • :( 你知道吗?我又想了想,现在我认为即使这个标志不存在你也可以解决问题。我不确定,但通常在 jakarta 项目中的代码生成是使用速度。如果正确,项目应该包含每种类的速度模板。也许您可以更改处理枚举的模板?
    • 我不知道他们是否使用速度,但我可以在一些后处理中更改类进行搜索替换操作。问题是,我也需要使用该枚举的所有类。我不确定整件事是否值得。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-02
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多