我有一個奇怪的情況,其中類中的getter返回基本int類型,並且setter接受一個Integer類。使用jaxb將整數轉換爲int
當JAXB解組這一類的元素,它不能找到它正在尋找二傳手:
public class Foo {
int bar;
public int getBar() {
return this.bar;
}
public void setBar(Integer bar) {
this.bar = bar.intValue();
}
}
我曾嘗試加入:
@XmlElement (type = java.lang.Integer.class, name = "bar")
吸氣劑(和二傳) ,來改變模式中的字段的類型,但這沒有幫助。
解組期間,我得到這個錯誤:該屬性有一個getter「public int com.example.getBar()」但沒有setter。對於解組,請定義setters。
我無法修改類,因爲我無法將條更改爲整數或添加了一個具有原始類型的新setter,但我可以添加註釋。
好點,雖然那會一起跳過setBar()。我們在setter中有一些需要執行的業務邏輯。 – rouble
@prmatta - 這是業務邏輯,你可以在XmlAdapter或afterUnmarshal事件中做些什麼。 –
可能 - XMLAdapter如何在這裏幫助? – rouble