2012-12-17 22 views
8

JAXB alanları ek açıklamalarına sahip bir REST web hizmeti var. Örneğin ,JAXB marshalling'de BigDecimal'i Kullanma

@XmlAccessorType(XmlAccessType.PROPERTY) 
public class MyClass{ 
    private BigDecimal sum; 
    //+ getter and setter 
} 

alan "toplam" büyük bir değer, örneğin, 1234567890,12345, yalnızca bu sınıf sıralanırken için bir kural nasıl yazılır 1.23456789E9 için marshalls içeriyorsa?

cevap

14

adaptörü

puclic class BigDecimalAdaptor implements XmlAdapter<String, BigDecimal> 

oluşturun ve

@XmlJavaTypeAdapter(BigDecimalAdaptor.class) 
public getSum() 
{ 
    return sum; 
} 

adaptör

gibi olabilir (XmlAccessType.FIELD) erişim

@XmlJavaTypeAdapter(BigDecimalAdaptor.class) 
private BigDecimal sum; 

için kullanmak ve (XmlAccessType.PROPERTY) erişim için

2

Bir XmlAdapter<String, BigDecimal> yazarsınız ve bununla birlikte toplam tutarı şu şekilde ekleyin: @XmlJavaTypeAdapter(BigDecimalStringAdapter.class).