350: Dynamic CDS Archives 351: ZGC: Uncommit Unused Memory 353: Reimplement the Legacy Socket API 354: Switch Expressions (Preview) 355: Text Blocks (Preview)
Unter den oben genannten möchte ich heute einen Blick auf "Switch Expressions (Preview)" werfen.
Switch Expressions (Preview) --Ist es eine Vorschau in JDK 12 oder eine Vorschau in 13? Da es sich um --Preview handelt, kann es anscheinend nur verwendet werden, wenn die Option --enable-Preview angegeben ist.
static void howMany(int k) {
switch (k) {
case 1 -> System.out.println("one");
case 2 -> System.out.println("two");
default -> System.out.println("many");
}
}
Früher habe ich den herkömmlichen "Fall L:" verwendet, aber jetzt kann er wie "Fall L->" verwendet werden. Wenn Sie jedoch so etwas wie "case L->" schreiben, gibt es keinen vollständigen Durchgang, sodass Sie keine Pause schreiben müssen.
howMany(1);
howMany(2);
howMany(3);
one
two
many
Schalter ist jetzt im Ausdruck verfügbar.
static void howMany(int k) {
System.out.println(
switch (k) {
case 1 -> "one"
case 2 -> "two"
default -> "many"
}
);
}
So können Sie das Ergebnis der switch-Anweisung auch einer Variablen zuordnen.
T result = switch (arg) {
case L1 -> e1;
case L2 -> e2;
default -> e3;
};
Das Schlüsselwort "ield "wurde hinzugefügt.
int j = switch (day) {
case MONDAY -> 0;
case TUESDAY -> 1;
default -> {
int k = day.toString().length();
int result = f(k);
yield result; //Legen Sie den Rückgabewert der switch-Anweisung fest
}
};
"Yield" kann auch in der switch-Anweisung des Ausdrucks "case L:" verwendet werden.
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