小编Joa*_*nna的帖子

仅在 getter 上使用 XmlTransient 注释?

我正在尝试将 XML 解组为一个我期望应该具有特定字段的对象。但是,我不想将该对象编组到包含它的 XML 中。我喜欢的是类似于这样的:

@XmlRootElement(name = "User")
public class User {

    private String name;

    @XmlTransient
    public String getName() {
        return this.name
    }

    @XmlElement(name = "Name")
    public void setName(String name) {
        this.name = name
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,由于注释冲突,这不起作用,因为我无法将任何其他 XML 注释与@XmlTransient. 我还尝试@XmlTransient在字段本身而不是 getter 上添加注释,并设置了此选项:

XmlAccessorType(XmlAccessType.FIELD)

此外,我将@XmlElement注释保留在设置器上,这对于排除该字段进行编组绝对没有任何作用。

我想保留@XmlElement注释,因为我希望能够将具有不同名称的字段(这里只是大小写差异)翻译成我想要的任何字段。

我也无法删除 getter,因为我确实在应用程序中使用了它。

鉴于此,我不知道此时我的选择是什么,除了编写一个适配器(我可以这样做,但如果有另一种解决方案,我宁愿不使用自定义适配器,因为这个字段)。任何帮助将不胜感激。

java xml jaxb marshalling xmltransient

2
推荐指数
1
解决办法
4872
查看次数

标签 统计

java ×1

jaxb ×1

marshalling ×1

xml ×1

xmltransient ×1