Я использую выражение переключения switch в Java 12 для преобразования строки в HTTP-метод :
static Optional<RequestMethod> parseRequestMethod(String methodStr) {
return Optional.ofNullable(
switch (methodStr.strip().toUpperCase(Locale.ROOT)) {
case "GET" -> RequestMethod.GET;
case "PUT" -> RequestMethod.PUT;
case "POST" -> RequestMethod.POST;
case "HEAD" -> RequestMethod.HEAD;
default -> {
log.warn("Unsupported request method: '{}'", methodStr);
return null;
}
});
}
Я хочу предупредить о неподдерживаемом методе по умолчаниюответвление и возврат null (который затем оборачивается в необязательный).
Но приведенный выше код вызывает ошибку компилятора:
Возврат за пределы включающего выражения переключателя
Как мне это скомпилировать?
Для полноты вот определение перечисления RequestMethod
:
enum RequestMethod {GET, PUT, POST, HEAD}
¹ выражений переключателя были введены в Java 12 в качестве функции предварительного просмотра.