Могу / должен ли я перечислить унаследованные свойства для сопоставленного компонента JAXB в аннотации «propOrder»?

У меня есть несколько аннотированных классов 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;
}

Теперь, когда я маршаллирую один из Foo или Bar , я получаю IllegalAnnotationException с жалобой на ] commonField указан в propOrder , но отсутствует в классе. Удалив его из аннотации propOrder , все работает нормально, но я думал, что должен был перечислить все отображаемые поля. Что мне не хватает?

15
задан agnul 22 July 2011 в 12:41
поделиться