Веб-служба возвращает огромный 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;
}
или это считается антипаттерном?