Java |属性的变量值

时间:2018-04-09 08:25:44

标签: java jaxb

我需要让我的程序的用户命名为注释的属性,因此我在该类中创建了可由main()中的用户管理的字段,这些字段应初始化name属性在getter的注释中,但Intellij IDEA告诉"属性值必须是常数"。你有任何想法如何做另一种方式? 有代码:

public class Model {

    private String a;
    private String b;

    String nameA;

    public User(String a) {
        this.a = a;
    }

    public User(String a, String b) {
        this.a = a;
        this.b = b;
    }

    @XmlElement(name = nameA)
    public String getA() {
        return a;
    }

    public void setA(String a) {
        this.a = a;
    }

}

1 个答案:

答案 0 :(得分:1)

您只能在注释中使用constant expressions

您似乎想要使用动态元素名称来映射您的属性。对于此更改JAXBElement<String>的类型,请使用@XmlElementRef注释而不是@XmlElement。然后,您可以将您的值构建为:

new JAXBElement(new QName(nameA), String.class, "myValue");