#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 lambdahttp://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

Your email address will not be published.


*