Есть ли более короткий синтаксис для if/throw else/return в Java 8? java.util.Optional
предоставляет средство для достижения этого в одном утверждении, но для этого требуется создать экземпляр Optional
с каждым вызовом, который имеет ненулевую ссылку.
Может ли это быть выполнено в одном выражении?
public static MyEnum fromString(String value) {
MyEnum result = enumMap.get(value);
if (result == null)
throw new IllegalArgumentException("Unsupported value: " + value);
return result;
}
Необязательный пример (плохо, требуется дополнительный экземпляр каждый раз)
public static MyEnum fromString(String value) {
return Optional.ofNullable(enumMap.get(value)).orElseThrow(
() -> new IllegalArgumentException("Unsupported value: " + value));
}