gpt4 book ai didi

java - 如果一个类有@XmlElement 属性,它不能有@XmlValue 属性

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:50:39 26 4
gpt4 key购买 nike

我收到以下错误:

If a class has @XmlElement property, it cannot have @XmlValue property

更新类:

    @XmlType(propOrder={"currencyCode", "amount"})
@XmlRootElement(name="priceInclVat")
@XmlAccessorType(XmlAccessType.FIELD)
public class PriceInclVatInfo {

@XmlAttribute
private String currency;
@XmlValue
private String currencyCode;
private double amount;

public PriceInclVatInfo() {}

public PriceInclVatInfo(String currency, String currencyCode, double amount) {
this.currency = currency;
this.currencyCode = currencyCode;
this.amount = amount;
}

public String getCurrency() {
return currency;
}

public void setCurrency(String currency) {
this.currency = currency;
}

public String getCurrencyCode() {
return currencyCode;
}

public void setCurrencyCode(String currencyCode) {
this.currencyCode = currencyCode;
}

public double getAmount() {
return amount;
}

public void setAmount(double amount) {
this.amount = amount;
}

}

我想使用元素属性和值实现以下输出:

<currencyCode plaintext="£">GBP</currencyCode>

我怎样才能做到这一点?如果我有 @XmlRootElement(name="priceInclVat") 是否可能?

最佳答案

对于错误:

If a class has @XmlElement property, it cannot have @XmlValue property

由于您指定了字段访问权限,因此默认情况下未注释的 amount 字段被视为具有 @XmlElement

private double amount;

您可以执行以下操作之一:

  1. @XmlAttribute注释数量
  2. 使用 @XmlTransient 注释 amount
  3. @XmlAccessorType(XmlAccessType.FIELD)更改为@XmlAccessorType(XmlAccessType.NONE),以便仅将带注释的字段视为已映射。

How can I achieve this? Is it possible if I have @XmlRootElement(name="priceInclVat")?

您可以将 PriceInclVatInfo 的实例包装在 JAXBElement 的实例中以覆盖根元素并对其进行编码。

关于java - 如果一个类有@XmlElement 属性,它不能有@XmlValue 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25998287/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com