如何以编程方式判断JAXB元素是否为“空”?
<fis:MyRequest/>通常,对于数据,它可能如下所示:
<fis:MyRequest>
<fis:ABC>X</fis:ABC>
<fis:XYZ>6000</fis:XYZ>
</fis:MyRequest>但有时它可能是空的,我想用代码隔离这些情况。
在这种情况下,很容易检查。
if (myRequest.getAbc() == null && myRequest.getXyz() == null) { ... }但想象一下,如果有更多的子元素,这将是不切实际的。
我考虑过将myRequest元素生成为字符串,并检查它是否是以/>结尾的单个标记,但这似乎是使用大象来追赶蚱蜢(换句话说,过度杀戮)。
是否有一个方便的实用功能坐在附近的某个地方这样做呢?
提前谢谢。
发布于 2013-11-22 09:43:44
考虑到已经生成了equals()方法(请参见下面的注释),您可以将JAXB元素与相同元素类型的new实例进行比较。
MyRequest EMPTY_MYREQYEST = new MyRequest();
if (myRequest.equals(EMPTY_MYREQUEST)) { ... }我看不出这种方法有什么坏处(?)
注意:在从xsd生成java代码时,最有可能需要-Xequals和-XhashCode标志。
https://stackoverflow.com/questions/20140530
复制相似问题