我有一个带有 JAXB 字段注释的 REST Web 服务。例如,
@XmlAccessorType(XmlAccessType.PROPERTY)
public class MyClass{
private BigDecimal sum;
//+ getter and setter
}
如果字段“sum”包含大值,例如1234567890.12345,则编组为1.23456789012345E9 如何编写仅编组该类的规则?
我有一个带有 JAXB 字段注释的 REST Web 服务。例如,
@XmlAccessorType(XmlAccessType.PROPERTY)
public class MyClass{
private BigDecimal sum;
//+ getter and setter
}
如果字段“sum”包含大值,例如1234567890.12345,则编组为1.23456789012345E9 如何编写仅编组该类的规则?
创建适配器
puclic class BigDecimalAdaptor implements XmlAdapter<String, BigDecimal>
并用于(XmlAccessType.FIELD)
访问
@XmlJavaTypeAdapter(BigDecimalAdaptor.class)
private BigDecimal sum;
和(XmlAccessType.PROPERTY)
访问
@XmlJavaTypeAdapter(BigDecimalAdaptor.class)
public getSum()
{
return sum;
}
适配器可以像
public class BigDecimalAdapter extends XmlAdapter<String, BigDecimal>{
@Override
public String marshal(BigDecimal value) throws Exception
{
if (value!= null)
{
return value.toString();
}
return null;
}
@Override
public BigDecimal unmarshal(String s) throws Exception
{
return new BigDecimal(s);
}
}
您编写 anXmlAdapter<String, BigDecimal>
并用它注释 sum 的 getter
@XmlJavaTypeAdapter(BigDecimalStringAdapter.class)
:。