2012-12-17 13 views
8

JAXBフィールド注釈付きのREST Webサービスがあります。例えば 、JAXBマーシャリングでBigDecimalを使用する

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

フィールド「合計」は大きな値が含まれている場合には、例えば、1234567890.12345は、それだけでこのクラスをマーシャリングするためのルールを記述するためにどのように1.23456789E9 にマーシャル?

答えて

14

アダプタ

puclic class BigDecimalAdaptor implements XmlAdapter<String, BigDecimal> 

を作成し、(XmlAccessType.FIELD)アクセス

@XmlJavaTypeAdapter(BigDecimalAdaptor.class) 
private BigDecimal sum; 

(XmlAccessType.PROPERTY)アクセスするため

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

アダプタが

のようにすることができますのために使用します
2

あなたはXmlAdapter<String, BigDecimal>と書いて、合計のゲッターに @XmlJavaTypeAdapter(BigDecimalStringAdapter.class)という注釈を付けます。

関連する問題