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 を返したいと思います (その後、オプションでラップされます)。
しかし、上記のコードではコンパイラ エラーが発生します。
囲んでいる switch 式の外側に戻る
これをコンパイルするにはどうすればよいですか?
RequestMethod
完全を期すために、列挙型の定義を次に示します。
enum RequestMethod {GET, PUT, POST, HEAD}
¹スイッチ式は、Java 12 でプレビュー機能として導入されました。