Мой коллега показал мне этот фрагмент кода, и мы оба задавались вопросом, почему мы не можем удалить дублированный код.
private List<Foo> parseResponse(Response<ByteString> response) {
if (response.status().code() != Status.OK.code() || !response.payload().isPresent()) {
if (response.status().code() != Status.NOT_FOUND.code() || !response.payload().isPresent()) {
LOG.error("Cannot fetch recently played, got status code {}", response.status());
}
return Lists.newArrayList();
}
// ...
// ...
// ...
return someOtherList;
}
Здесь альтернативное представление, чтобы сделать его немного менее многословным:
private void f() {
if (S != 200 || !P) {
if (S != 404 || !P) {
Log();
}
return;
}
// ...
// ...
// ...
return;
}
Есть ли более простой способ написать это, не дублируя !P
? Если нет, существует ли какое-то уникальное свойство ситуации или условий, из-за которых невозможно исключить из !P