我正在使用JAXB在Maven中使用JAXB插件从XSD生成bean。 这工作正常,期望代码包含每个字段的isSetXXXXXX()方法。
e.g。
对于字段 firstName ,它产生以下代码:
@XmlElement(name = "FirstName", required = true)
protected String firstName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.token = firstName;
}
public boolean isSetFirstName() {
return (this.firstName!= null);
}
这个isSetFirstName()方法导致了问题,我不希望JAXB生成这些问题。
有没有办法阻止此行为?
感谢。
更新
解决了这个问题:问题出现在xjb文件中,generateIsSetMethod设置为true。
<xs:annotation>
<xs:appinfo>
<jaxb:globalBindings generateIsSetMethod="true">
bindingStyle="modelGroupBinding"
choiceContentProperty="true" >
<xjc:serializable uid="12343"/>
<jaxb:javaType name="short"
xmlType="xs:long"
printMethod="javax.xml.bind.DatatypeConverter.printShort"
parseMethod="javax.xml.bind.DatatypeConverter.parseShort"/>
</jaxb:globalBindings>
</xs:appinfo>
</xs:annotation>
这也回答了我previous question。
答案 0 :(得分:9)
默认情况下,JAXB(JSR-222)实现不会生成isSet
方法。因为你得到它们之一必须是真的:
<jaxb:globalBindings generateIsSetMethod="true"/>
<jaxb:globalBindings generateIsSetMethod="true"/>
isSet
方法。