7
我必須通過JAXB這樣一個簡單的POJO註解類:簡單的方式來分配與XMLELEMENT默認值註釋默認值
public class MyPojo
implements Serializable
{
private final static long serialVersionUID = 1234L;
@XmlElement(name = "Type", required = true, defaultValue = "none")
@NotNull
protected SeismicDataAcquisitionSystemType type;
@XmlElement(name = "IpAddress", required = true)
@NotNull
@Pattern(regexp = "((1?[0-9]?[0-9]|2[0-4]|[0-9]|25[0-5]).){3}(1?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])")
protected String ipAddress;
@XmlElement(name = "SealServerTcpPort", defaultValue = "1477")
@NotNull
protected int sealServerTcpPort;
@XmlElement(name = "PamServerTcpPort", defaultValue = "1485")
@NotNull
protected int pamServerTcpPort;
/**
* Obtient la valeur de la propriété type.
*
* @return
* possible object is
* {@link SeismicDataAcquisitionSystemType }
*
*/
public SeismicDataAcquisitionSystemType getType() {
return type;
}
/**
* Définit la valeur de la propriété type.
*
* @param value
* allowed object is
* {@link SeismicDataAcquisitionSystemType }
*
*/
public void setType(SeismicDataAcquisitionSystemType value) {
this.type = value;
}
public boolean isSetType() {
return (this.type!= null);
}
/**
* Obtient la valeur de la propriété ipAddress.
*
* @return
* possible object is
* {@link String }
*
*/
public String getIpAddress() {
return ipAddress;
}
/**
* Définit la valeur de la propriété ipAddress.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setIpAddress(String value) {
this.ipAddress = value;
}
public boolean isSetIpAddress() {
return (this.ipAddress!= null);
}
/**
* Obtient la valeur de la propriété sealServerTcpPort.
*
*/
public int getSealServerTcpPort() {
return sealServerTcpPort;
}
/**
* Définit la valeur de la propriété sealServerTcpPort.
*
*/
public void setSealServerTcpPort(int value) {
this.sealServerTcpPort = value;
}
public boolean isSetSealServerTcpPort() {
return true;
}
/**
* Obtient la valeur de la propriété pamServerTcpPort.
*
*/
public int getPamServerTcpPort() {
return pamServerTcpPort;
}
/**
* Définit la valeur de la propriété pamServerTcpPort.
*
*/
public void setPamServerTcpPort(int value) {
this.pamServerTcpPort = value;
}
}
我嘗試初始化我的POJO就是那樣的
MyPojo myPojo = new MyPojo();
myPojo.getPamServerTcpPort(); // return 0
setDefaultValues(myPojo); // assign attributes with annotated default values
myPojo.getPamServerTcpPort(); // return 1485
默認值
我想用setDefaultValues(MyPojo loMyPojo)方法來解析類,它使用java.lang.annotation API和java.lang.reflect API解析類,但是我的代碼很難看,並且不能用我自己的枚舉默認值
我必須mentionned因爲它本身由XSD解析通過JAXB
任何想法產生我不能修改原始類MyPojo?
你用什麼框架生成類(如公理2)? – amphibient
我使用jaxb api和xjc命令un a plugin(krasa) –