350: Dynamic CDS Archives 351: ZGC: Uncommit Unused Memory 353: Reimplement the Legacy Socket API 354: Switch Expressions (Preview) 355: Text Blocks (Preview)
Parmi ce qui précède, je voudrais aujourd'hui jeter un coup d'œil à "Switch Expressions (Preview)".
Switch Expressions (Preview)
static void howMany(int k) {
switch (k) {
case 1 -> System.out.println("one");
case 2 -> System.out.println("two");
default -> System.out.println("many");
}
}
J'avais l'habitude d'utiliser le "cas L:" conventionnel, mais maintenant il peut être utilisé comme "cas L->". Cependant, si vous écrivez quelque chose comme "case L->", il n'y a pas de full through, donc vous n'avez pas à écrire break.
howMany(1);
howMany(2);
howMany(3);
one
two
many
switch est désormais disponible dans expression.
static void howMany(int k) {
System.out.println(
switch (k) {
case 1 -> "one"
case 2 -> "two"
default -> "many"
}
);
}
Vous pouvez donc également affecter le résultat de l'instruction switch à une variable.
T result = switch (arg) {
case L1 -> e1;
case L2 -> e2;
default -> e3;
};
Le mot clé "yield" a été ajouté.
int j = switch (day) {
case MONDAY -> 0;
case TUESDAY -> 1;
default -> {
int k = day.toString().length();
int result = f(k);
yield result; //Définir la valeur de retour de l'instruction switch
}
};
"Yield" peut également être utilisé dans l'instruction switch de l'expression "case L:".
int result = switch (s) {
case "Foo":
yield 1;
case "Bar":
yield 2;
default:
System.out.println("Neither Foo nor Bar, hmmm...");
yield 0;
};
Recommended Posts