我需要让我的程序的用户命名为注释的属性,因此我在该类中创建了可由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;
}
}
答案 0 :(得分:1)
您只能在注释中使用constant expressions。
您似乎想要使用动态元素名称来映射您的属性。对于此更改JAXBElement<String>
的类型,请使用@XmlElementRef
注释而不是@XmlElement
。然后,您可以将您的值构建为:
new JAXBElement(new QName(nameA), String.class, "myValue");