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 楼答案
只能在注释中使用constant expressions
似乎要使用动态元素名称映射属性。为此,请更改
JAXBElement<String>
的类型,并使用@XmlElementRef
注释代替@XmlElement
。然后,您可以将自己的价值构建为: