我有业务要求,但我无法弄明白。我有一个java类,其中我使用BigDecimal初始化货币值,如此。
public class EncounterCharge {
BigDecimal TotalCharge = new BigDecimal(0);
我有一个吸气剂和二传手。 Setter是String,getter返回BigDecimal
/**
* @return the totalCharge
*/
@XmlElement(name = "TotalCharge")
public BigDecimal getTotalCharge() {
return TotalCharge;
}
/**
* @param totalCharge the totalCharge to set
*/
public void setTotalCharge(String totalCharge) {
TotalCharge = new BigDecimal(totalCharge).setScale(2, BigDecimal.ROUND_HALF_UP);
}
问题是,企业希望未设置的BigDecimal值不会出现在XML中。目前它确实如此<totalCharges>0</totalCharges>.
我们根本不希望这种情况出现。但是,如果它明确设置为0,那就没关系。有什么想法吗?
答案 0 :(得分:1)
使用对其进行注释。如果需要填充字段,则必须将值设置为null。这是因为@XmlTransient
@XmlElement
默认情况下required
状态为false
,因此会忽略null
值。
答案 1 :(得分:0)
正如Buhake所说,如果你将totalCharges设置为null,它可以正常工作。使用setter将其设置为BigDecimal。
@XmlTransient
不包括字段,但不是有条件的。如果没有初始化,我们希望不包括该字段。
这是另一篇关于XMLTransient的教程。谢谢大家。
http://blog.bdoughan.com/2012/04/jaxb-and-unmapped-properties.html