如果您查看 jsr-303(bean 验证),您会发现注释可以放在 @target 中的 ANNOTATION_TYPE
上(例如 javax.validation.constraints.Min
)
通过这种方式,bean 验证可以轻松扩展到@OnlyPositiveNumber
。
以 jaxb 为例(一个糟糕的例子),我可以创建 @XmlAlwaysRequiredElement
像 XmlElement
这样的 JAXB 注释不使用相同的技术有充分的理由吗?
最佳答案
我怀疑你可能会说“由于 X 而没有完成” - 事情就是这样,要么规范负责人认为没有必要,要么他们根本没有想到它。谁知道呢。
但是,在这种情况下,我真的认为没有太大必要。您的示例涉及数据验证,而 JAXB 旨在与 XML 架构配合使用来实现此目的,而不是使用注释进行验证。
如果我们想要对 JAXB 进行基于注释的验证,那么为此使用 JSR-303 验证会更有意义,并且让 JAXB 运行时选取它们并使用它们,而不是或者除此之外, XML 模式验证。不过(我认为)当前的实现都没有做到这一点。
关于java - jaxb注解不可扩展的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5451958/