有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

jaxb Java |属性的变量值

我需要让我的程序名的用户使用注释属性,因此我在该类中创建了可以由main()中的用户管理的字段,这些字段应该在getter的注释中初始化name属性,但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) 个答案

  1. # 1 楼答案

    只能在注释中使用constant expressions

    似乎要使用动态元素名称映射属性。为此,请更改JAXBElement<String>的类型,并使用@XmlElementRef注释代替@XmlElement。然后,您可以将自己的价值构建为:

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