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,没有任何效果。