我有这个问题出现在一个非常特殊的情况。我的XML就像
<xo:USAddress>
<xo:Street>990 STANLEY CT</xo:Street>
<xo:City>ERIE</xo:City>
<xo:County>BOULDER</xo:County>
<xo:State>COLORADO</xo:State>
<xo:ZipCode>80516</xo:ZipCode>
</xo:USAddress>
我的代码假设县信息将永远存在于美国地址,但在某些情况下,如维尔京群岛,我们没有得到该县。 在我的服务类中,我有以下内容:
usAddress_Svc.setCounty(usAddress_PAS.getCounty().getStringValue());
如果xml中没有县信息 - 我应该如何处理这种情况。尝试空检查,但这不能解决目的,请建议。
答案 0 :(得分:0)
你确实不通常会得到一个null,因为大多数XML解析器都假设一个空字符串(在Java中它与null值不同)。请尝试使用bs.ResetBindings(false);
来确定该县是否只是一个空白值。
唯一可能为null的是,如果县字段不存在,并且县值未初始化。对于这样的情况,最好的方法可能是使用Java 8可选字段(http://www.oracle.com/technetwork/articles/java/java8-optional-2175753.html)。
如果字段初始化为address.getCounty().isEmpty()
,那么您可以使用简单表达式访问其内容或返回默认值,其中包含:
Optional.empty()
这将返回县或值“N / A”。还有很多其他有用的方法。