2

我有两个具有 JAXB 注释的 Scala 案例类。

@XmlRootElement
@XmlSeeAlso({ Array(classOf[Element]) })
case class Config(
    @(XmlElement @field) name: String,
    @(XmlElement @field) reelCount: Int,
    @(XmlElement @field) slots: Int,
    @(XmlElementWrapper @field)@(XmlAnyElement @field) elements: List[Element]) {
    private def this() = this("", 0, 0, new ArrayList())
}

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
case class Element(
    @(XmlAttribute @field)@(XmlID @field) id: Int,
    @(XmlElement @field) name: String,
    @(XmlElement @field) imgPath: String) {
    private def this() = this(0, "", "")
}

当我@(XmlID @field)从元素的第一个属性中删除注释时,编组工作。当我使用 xml id 字段对其进行注释时,出现以下异常:

[IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions]

它应该在 Java 中使用这 2 个注释,但不知道我在 Scala 中做错了什么。有任何想法吗?或者也许有一些解决方法?

4

1 回答 1

1

JAXB (JSR-222)参考实现只允许对 type的@XmlID字段/属性进行注释String。这就是为什么您在IllegalAnnotationsExceptiontype 领域获得了一个Int

于 2013-07-09T15:38:55.923 回答