我有一堆JAXB注释类,它们有一个共同的字段,所以我把那个字段移到了一个超类,就像这样
public class Base {
protected SomeType commonField;
}
@XmlRootElement(name = "foo") @XmlType(propOrder = { "commonField", "fooField" })
public class Foo extends Base {
private SomeOtherType fooField;
}
@XmlRootElement(name = "bar") @XmlType(propOrder = { "commonField", "barField" })
public class Bar extends Base {
private SomeOtherType barField;
}
Run Code Online (Sandbox Code Playgroud)
现在每当我对其中一个进行编组,Foo或者Bar我IllegalAnnotationException抱怨commonField被列入propOrder课堂但没有出现在课堂上时.从propOrder注释中删除它一切正常,但我知道我应该列出所有映射的字段.我错过了什么?
bdo*_*han 27
继承类的字段/属性将始终显示在子类的字段/属性之前.这意味着默认情况下,您无法propOrder在子类型上指定它们.但是,如果您将父类标记为@XmlTransient字段/属性将被视为属于子类,并且可以包含在子类中propOrder.
| 归档时间: |
|
| 查看次数: |
7017 次 |
| 最近记录: |