2013-11-22 46 views
1

如何以編程方式判斷JAXB元素是否爲「空」?如何判斷JAXB元素<MyRequest/>是否爲「空」

<fis:MyRequest/> 

通常情況下,用數據,它可能是這樣的:

<fis:MyRequest> 
    <fis:ABC>X</fis:ABC> 
    <fis:XYZ>6000</fis:XYZ> 
</fis:MyRequest> 

但有時也可以是空的,我想在代碼中分離這些案件。

在這種情況下,很容易檢查

if (myRequest.getAbc() == null && myRequest.getXyz() == null) { ... } 

但試想一下,如果還有更多的子元素,這是不實際的。

我想過要將myRequest元素生成爲一個字符串,並檢查它是否是一個以/>結尾的單個標記,但這好像是用大象來追逐蚱蜢(換句話說,是過度殺傷)。

是否有一個方便的實用功能坐在某些地方這樣做?

在此先感謝。

+0

沒有的getChildren()生成Java代碼時,-Xequals-XhashCode標誌是最有可能需要? – dierre

+0

nope。類是使用'maven-jaxb2-plugin'版本0.8.3 – vikingsteve

+0

從xsd生成的,你的流程是什麼?您是否使用XSD –

回答

1

鑑於已生成equals()方法(請參閱下面的註釋),您可以將JAXB元素與具有相同元素類型的new實例進行比較。

MyRequest EMPTY_MYREQYEST = new MyRequest(); 

if (myRequest.equals(EMPTY_MYREQUEST)) { ... } 

我看不到任何缺點這種方法

音符(?):從XSD

相關問題