JDK 14の新機能-Switch新機能
6378 ワード
2020年3月17日、OracleはJDK 14バージョンを正式にリリースし、16の新しい機能を追加しました.
本文は重点的にswitchの新しい機能について書きます:
switch式は、switch文を拡張し、文(statement)としてだけでなく、式(expression)としても使用できます.また、両方の書き方で従来のswitch構文を使用するか、簡略化されたcase L->モードマッチング構文を使用して、異なる範囲で実行フローを制御できます.
JDK 14以前のswitch表記:
本文は重点的にswitchの新しい機能について書きます:
switch式は、switch文を拡張し、文(statement)としてだけでなく、式(expression)としても使用できます.また、両方の書き方で従来のswitch構文を使用するか、簡略化されたcase L->モードマッチング構文を使用して、異なる範囲で実行フローを制御できます.
JDK 14以前のswitch表記:
public class SwitchTest {
public static void main(String[] args) {
Weekday day = Weekday.MON; //
//case L:
switch (day){
case MON:
case TUE:
case WEN:
String s = ""; // switch :
System.out.println(" ");
break;
case THU:
case FRI:
String s = ""; //
System.out.println(" ");
case SAT:
case SUN:
System.out.println(" ");
}
System.out.println("12");
}
//
enum Weekday{
MON,TUE,WEN,THU,FRI,SAT,SUN
}
:
12
break case
1.case L -> case
public class SwitchTest {
public static void main(String[] args) {
Weekday day = Weekday.MON; //
//case L:
switch (day){// break;
case MON, TUE, WEN -> {
System.out.println(" ");
String s = "abc"; //
}
case THU, FRI -> {
System.out.println(" ");
String s = "def";
}
case SAT, SUN -> {
System.out.println(" ");
}
}
System.out.println("12");
}
//
enum Weekday{
MON,TUE,WEN,THU,FRI,SAT,SUN
}
:
12
2.JDK14 switch
public class SwitchTest { public static void main(String[] args) { Weekday day = Weekday.MON; // //JDK14 switch // System.out.println(switch(day){ case MON, TUE, WEN -> " "; case THU, FRI -> " "; case SAT, SUN -> " "; }); // String text = switch(day){ case MON, TUE, WEN -> " "; case THU, FRI -> " "; case SAT, SUN -> " "; }; // yield day = Weekday.SAT; int x = switch(day){ case MON, TUE, WEN -> 1; case THU, FRI -> 2; case SAT, SUN -> { int rnd = (int)(Math.random()*10); // (0,10) System.out.println("rnd = " + rnd); yield rnd; // yield }; }; System.out.println("x = " + x); } } // enum Weekday{ MON,TUE,WEN,THU,FRI,SAT,SUN }