Web 服务返回一个巨大的 XML,我需要访问它的深度嵌套字段,例如:
return wsObject.getFoo().getBar().getBaz().getInt()
问题是 getFoo()
、 getBar()
、 getBaz()
都可能返回 null
。
但是,如果我在所有情况下都检查 null
,代码就会变得非常冗长和难以阅读。此外,我可能会错过一些领域的检查。
if (wsObject.getFoo() == null) return -1;
if (wsObject.getFoo().getBar() == null) return -1;
// maybe also do something with wsObject.getFoo().getBar()
if (wsObject.getFoo().getBar().getBaz() == null) return -1;
return wsObject.getFoo().getBar().getBaz().getInt();
可以写
try {
return wsObject.getFoo().getBar().getBaz().getInt();
} catch (NullPointerException ignored) {
return -1;
}
还是说这就是反模式?