【发布时间】:2011-04-13 07:15:47
【问题描述】:
当您在子类列表中有 @XmlElement 时,是否有 JAXB 注释来忽略父类?
澄清一下 - 我想知道是否有比将所有父类 getter/setter 标记为瞬态,然后必须返回子类并添加 getter/setter 并将它们注释为 XmlElements 更好的方法不错
一个例子:
public class GenericHelper {
String name="";
String dates="";
String roleName="";
String loe="";
@XmlTransient
public String getName() {return name;}
public void setName(String name) {this.name = name;}
@XmlTransient
public String getDates() {return dates;}
public void setDates(String dates) {this.dates = dates;}
@XmlTransient
public String getRoleName() {return roleName;}
public void setRoleName(String roleName) {this.roleName = roleName;}
@XmlTransient
public String getLOE() {return loe;}
public void setLOE(String loe) {
this.loe = loe.replace("%", "").trim();
}
}
和
public class SpecificHelper extends GenericHelper {
List<ProjectHelper> projects;
public SpecificHelper (){
projects=new ArrayList<ProjectHelper>();
}
@XmlElement(name = "project")
@XmlElementWrapper (name = "projectlist")
public List<ProjectHelper> getProjects() {return projects;}
public void setProjects(List<ProjectHelper> projects) {this.projects = projects;}
@XmlElement
public String getName(){
return super.getName();
}
@Override
public String toString(){
String ret="SpecificHelper [";
ret+="name:"+name+";";
ret+="dates:"+dates+";";
ret+="roleName:"+roleName+";";
ret+="loe:"+loe+";";
ret+="\n\tprojects:"+projects+";";
return ret+"]";
}
}
所以在这个例子中,如果我取出 GenericHelper 中的 XmlTransient 注释,任何扩展它的类,如果我有一个方法 getSpecificHelper() 返回所有雇主的列表,并用 XmlElement 注释它,所有这些项目将返回一个名称、LOE、RoleName 等。我正在寻找一个在 GenericHelper 上进行的类注释,这样我就可以避免必须单独使用所有 @XmlTransients,并且只使用我放入的 XmlElement 符号具体助手
【问题讨论】:
-
我不确定我是否理解。是否可以发布一个简短的示例来说明您的问题?
标签: java data-binding xml-serialization jaxb