[Java] Schauen wir uns die Switch-Ausdrücke (Vorschau) von JDK 13 an.

Fünf wichtige Funktionen von OpenJDK 13

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.

・ Pfeilbeschriftungen


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.

Beim Anruf wird es wie folgt sein.

howMany(1);
howMany(2);
howMany(3);
Ergebnis

one
two
many

・ Ausdrücke wechseln

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;
};

・ Einen Wert liefern

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;
};

Referenz

Recommended Posts

[Java] Schauen wir uns die Switch-Ausdrücke (Vorschau) von JDK 13 an.
Werfen wir einen Blick auf den Bildschirm von Quant Analyzer!
Werfen wir einen Blick auf die Funktionen der Keycloak-Verwaltungskonsole (Administrator Edition).
Schauen wir uns das Verfahren zum Starten der Hotspot-JVM an
Schauen Sie sich Kotlin aus einer effektiven Java-Perspektive an
Werfen wir einen Blick auf die Funktionen der Keycloak-Verwaltungskonsole (User Edition), dem Benutzerkontodienst
Lassen Sie uns eine TODO-App in Java 5 erstellen. Schalten Sie die Anzeige von TODO um
Nennen Sie eine Gruppe regulärer Ausdrücke (Java)
Lass uns einen Roboter bauen! "Eine einfache Demo von Java AWT Robot"
[Java] Zusammenfassung der regulären Ausdrücke
Lassen Sie uns eine TODO-App in Java 4 erstellen. Implementierung der Buchungsfunktion
Lassen Sie uns eine TODO-App in Java 6 erstellen. Implementierung der Suchfunktion
Lassen Sie uns eine TODO-App in Java 8 erstellen. Implementierung von Bearbeitungsfunktionen
Ich habe mir die Ressourcen der Azure Container-Instanz angesehen
Erstellen wir eine TODO-Anwendung mit Java 1 Kurze Erläuterung von MVC
Ein kurzer Rückblick auf Java in den letzten fünf Jahren
Liste der Java-Objekte sortieren
Eine kurze Beschreibung der JAVA-Abhängigkeiten
Der Ursprung von Java-Lambda-Ausdrücken
Verstehe die Lambda-Formel ein wenig
Lassen Sie uns das Ergebnis der Analyse von Java-Bytecode in einem Klassendiagramm ausdrücken