1
這個簡單的1 - 丙類工作正常,並且可以ummarshaled定義JAXB忽略屬性如果與布爾方法是前綴
@XmlRootElement
@XmlAccessorType(XmlAccessType.NONE)
public class AdditionalGetter {
private float a;
@XmlElement(name = "my_prop_a", required = false)
public float getA() {
return a;
}
public void setA(float a) {
this.a = a;
}
// public boolean isA() {
// return true;
// }
}
輸出:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<additionalGetter>
<my_prop_a>7.0</my_prop_a>
</additionalGetter>
但如果我去掉與方法中的線ISA()它不工作了,輸出IST只是(在Win):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<additionalGetter/>
因此,它看起來像JAXB命名衝突。實際上,任何一個類型都不應該忽略其他字段,但是A()方法會阻止一個字段被編組。
因此,一種無知的方式來解決它,只是爲了重命名方法isA()來避免衝突。但我想知道:
1)這真的被JAXB禁止?如果是的話,這是什麼descriebed?
2)是否有任何方法使編組工作,而不重命名此方法(和打破現有的jar界面)?我嘗試了@XmlTransient,沒有任何效果。