我使用JAXB创建XML,我想在标签内放置double类型的值:
@XmlElement(name = "TaxFree")
private double taxFreeValue;
当我使用
setTaxFreeValue(4.5);
时,标签中显示为<TaxFree>4.5<TaxFree>
在JAXB中是否有可能在不将double转换为字符串的情况下获得<TaxFree>4.500<TaxFree>
?double taxFreeValue;
@XmlElement(name = "TaxFree")
private String getTaxFree() {
return String.format("%.3f", taxFreeValue);
}
@XmlAccessorType
。我将其设置为 @XmlAccessorType(XmlAccessType.NONE)
,因此只考虑了 @XmlElement
注释进行编组。 - TounioukXmlAdapter
将双精度值转换为所需的文本(字符串)表示形式。
XMLAdapter
。创建一个DoubleAdapter
类,其中包含:public class DoubleAdapter extends XmlAdapter<String, Double> {
@Override
public Double unmarshal(String v) throws Exception {
if (v == null || v.isEmpty() || v.equals("null")) {
return null;
}
return Double.parseDouble(v);
}
@Override
public String marshal(Double v) throws Exception {
if (v == null) {
return null;
}
//Edit the format to your needs
return String.format("%.3f", v);
}
}
@XmlElement(name = "TaxFree")
@XmlJavaTypeAdapter(DoubleAdapter.class)
private double taxFreeValue;
4.5 == 4.500
。所以我不是很明白你的问题。 - Hovercraft Full Of Eels4.500
而无法处理4.5
,那么我建议该程序存在问题。 - Jim Garrison