我使用下面的代碼,在JDK8環境中使用了一個新註解屬性:在預先存在的編譯方面
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Client", namespace = "http://schemas.datacontract.org/2004/07/BLA.BLA.Model.Client", propOrder = {
"birthDate",
"email",
"ip",
"name",
"phone"
})
@Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2016-12-07T07:34:51+04:00", comments = "JAXB RI v2.2.4-2")
public class Client {
@XmlElementRef(name = "BirthDate", namespace = "http://schemas.datacontract.org/2004/07/BLA.BLA.Model.Client", type = JAXBElement.class, required = false)
@Generated(value = "com.sun.tools.internal.xjc.Driver", date = "2016-12-07T07:34:51+04:00", comments = "JAXB RI v2.2.4-2")
該代碼在與maven`s建設者JDK8下編譯的應用程序使用目標設置爲1.6並在JDK6下運行。 (不要問我爲什麼:()
我想知道它是如何工作的呢?物業@XmlElementRef
沒有屬性required
在JDK6的版本,它不能用它來構建。
PS。我不問,爲什麼我可以編譯代碼,我感興趣的是爲什麼我可以運行它,是否因爲一些註解特定的語義,因爲我的代碼不知道這個屬性required
,從來沒有使用它,或者因爲別的什麼?
@ Sotirios-delimanolis我不認爲,我的問題是重複的。我編輯它,更清楚。 – glebiuskv
你是什麼意思_不知道property_? –
我的意思是,它是從1.6開始的'@ XmlElementRef',我不手動調用這個屬性,所以沒有地方,這個代碼被調用。 – glebiuskv