我正在用Java创建一个Web服务,该服务将由外部应用程序使用,可能是用C#编写的。在我的Purchase bean中,我有一个Currency对象用于总成本。但是,这会导致以下错误:
Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions
java.util.Currency does not have a no-arg default constructor.
我发现a solution创建了一个自定义XML适配器来处理货币编组/解组:
public class CurrencyAdapter extends XmlAdapter<String,Currency> {
public Currency unmarshal(String val) throws Exception {
return Currency.getInstance(val);
}
public String marshal(Currency val) throws Exception {
return val.toString();
}
}
我可以使用该自定义XML适配器,还是使用BigDecimal(或其他类型)对象来表示成本?
答案 0 :(得分:4)
您正在混合货币(指定单位)和成本(该单位中的某个数量)。您不能将货币表示为BigInteger,因为货币不是数量。