Вы можете переписать код, как
Optional<String> code;
if (accountType.requiresCode()) code.filter(x->!empty(x)).orElseThrow(
() -> new IllegalArgumentException("Account type " + accountType + " requires code")
);
или, при условии, что ваш empty(code.get())
на самом деле имел в виду code.get().isEmpty()
:
Optional<String> code=Optional.empty();
if (accountType.requiresCode()) code.filter(x->!x.isEmpty()).orElseThrow(
() -> new IllegalArgumentException("Account type " + accountType + " requires code")
);
Но это на самом деле не добавить к читаемости. Лямбда не всегда лучше обычного кода.
Optionals может сделать эту работу! http://blog.jhades.org/java-8-how-to-use-optional/ – Digix
'code' является необязательным –
Oliveira
И в чем проблема с вышеуказанным кодом? Что бы вы получили, используя лямбды, и где? –