çok ortak bir alan var JAXB açıklamalı sınıfları bir grup var, bu yüzden Marshall biri Foo
veya Bar
I şikayetçi bir IllegalAnnotationException
olsun zaman ben Şimdi bu"PropOrder" açıklamasında bir JAXB mapped bean için miras alınan özellikleri listeleyebilir miyim/listeleyebilir miyim?
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;
}
gibi bir süper sınıfın o alanı taşındı commonField
hakkında propOrder
listeleniyor, ancak sınıfta mevcut değil. propOrder
ek açıklamadan çıkartmak her şey yolunda gidiyor, ama ben tüm haritalanmış alanları listelemem gerekiyordu. Neyi kaçırıyorum?
farkında olun ki üst sınıfın özel uygulama detaylarına alt sınıf bu çiftler ek açıklamadır. "PropOrder" i değiştirmeden üst sınıftaki bir alan ismini kayıt altına almak, alt sınıfın serileştirilmesini kıracaktır. Böylece süper sınıfa seri hale getirilmiş bir alan ekleyecek. Ayrıca, propOrder'deki adların @XmlElement ek açıklamaları tarafından sağlanan adlar olmadığını, bunun yerine Java alanlarının veya özelliklerinin tanımlayıcılarını olduğunu unutmayın. [Bu cevap bugün bana çok yardımcı oldu.] –