#Java 12 – wyrażenia switch case
#Java 12 – wyrażenia switch case
Java 12 rozszerza instrukcję switch o możliwość zastosowania składni która przypomina wyrażenia lambda – http://openjdk.java.net/jeps/325. Klasyczna instrukcja switch wygląda następująco:
public class HTTP { public static void main(String []args) { int httpCode = 201; switch (httpCode) { case 200: System.out.println("OK"); break; case 201: System.out.println("CREATED"); break; case 202: System.out.println("ACCEPTED"); break; } } }
wynik:
$javac HTTP.java $java -Xmx128M -Xms16M HTTP CREATED
W Javie 12 instrukcja ta przedstawia się następująco:
public class HTTP { public static void main(String []args) { int httpCode = 201; switch (httpCode) { case 200 -> System.out.println("OK"); case 201 -> System.out.println("CREATED"); case 202 -> System.out.println("ACCEPTED"); } } }
Kompilacja:
javac --enable-preview --release 12 HTTP.java
Uruchomienie:
java --enable-preview HTTP
Ponadto jest możliwość traktowania wyrażenia switch jako metody – wyrażenia które zwraca wartość poprzez instrukcję break:
public class HTTP { public static void main(String []args) { int httpCodeInt = 201; String httpCode = switch (httpCodeInt) { case 200 -> "OK"; case 201 -> "CREATED"; case 202 -> "ACCEPTED"; default -> { break "N/A"; } }; System.out.println(httpCode); } }
wynik:
bash-4.2# javac --enable-preview --release 12 HTTP.java Note: HTTP.java uses preview language features. Note: Recompile with -Xlint:preview for details. bash-4.2# java --enable-preview HTTP CREATED
Leave a comment