„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Mustervergleich in Java verstehen

Mustervergleich in Java verstehen

Veröffentlicht am 31.07.2024
Durchsuche:741

Understanding Pattern Matching in Java

Mustervergleich ist eine leistungsstarke Funktion, die in Java eingeführt wurde und es Ihnen ermöglicht, Ihren Code zu vereinfachen und die Lesbarkeit zu verbessern. Der Mustervergleich wurde ursprünglich in Java 14 zum Beispiel für Prüfungen eingeführt und in späteren Versionen erweitert und ermöglicht durch die Reduzierung der Boilerplate einen ausdrucksstärkeren und prägnanteren Code.

Was ist Mustervergleich?

Mit dem Mustervergleich können Sie Komponenten aus Objekten extrahieren und bestimmte Bedingungen präzise anwenden. Es handelt sich um eine Funktion, die einen Wert anhand eines Musters prüft und bei erfolgreicher Übereinstimmung Variablen aus dem Muster bindet.

Vorteile des Mustervergleichs

  1. Prägnanter Code: Reduziert den Boilerplate-Code und macht Ihre Programme kürzer und leichter lesbar.
  2. Verbesserte Lesbarkeit: Verbessert die Klarheit Ihres Codes, indem die Struktur klarer dargestellt wird.
  3. Typsicherheit: Stellt sicher, dass Variablen korrekt typisiert sind, wodurch die Wahrscheinlichkeit von Laufzeitfehlern verringert wird.

Mustervergleich mit Instanz von

Eine der häufigsten Anwendungen des Mustervergleichs ist der Instanzoperator. Hier ist ein Beispiel:

public class PatternMatchingExample {
    public static void main(String[] args) {
        Object obj = "Hello, World!";

        if (obj instanceof String s) {
            System.out.println("The string is: "   s);
        } else {
            System.out.println("Not a string");
        }
    }
}

In diesem Beispiel prüft der Operator „instanceof“ nicht nur, ob obj ein String ist, sondern wandelt ihn auch in einen String um und bindet ihn in einem einzigen Schritt an die Variable s.

Mustervergleich mit Schalterausdrücken

Mustervergleich wird auch bei Schalterausdrücken verwendet, um deren Leistungsfähigkeit und Flexibilität zu verbessern. Hier ist ein Beispiel mit versiegelten Klassen:

public sealed class Shape permits Circle, Rectangle, Square {}

public final class Circle extends Shape {
    private final double radius;

    public Circle(double radius) {
        this.radius = radius;
    }

    public double radius() { return radius; }
}

public final class Rectangle extends Shape {
    private final double width, height;

    public Rectangle(double width, double height) {
        this.width = width;
        this.height = height;
    }

    public double width() { return width; }
    public double height() { return height; }
}

public final class Square extends Shape {
    private final double side;

    public Square(double side) {
        this.side = side;
    }

    public double side() { return side; }
}

public class PatternMatchingWithSwitch {
    public static void main(String[] args) {
        Shape shape = new Circle(5);

        String result = switch (shape) {
            case Circle c -> "Circle with radius "   c.radius();
            case Rectangle r -> "Rectangle with width "   r.width()   " and height "   r.height();
            case Square s -> "Square with side "   s.side();
        };

        System.out.println(result);
    }
}

In diesem Beispiel verwendet der Schalterausdruck einen Mustervergleich, um die Shape-Objekte zu zerstören und relevante Daten zu extrahieren.

Abschluss

Der Mustervergleich in Java verleiht Ihrem Code ein neues Maß an Ausdruckskraft und Einfachheit. Durch die Reduzierung des Boilerplates und die Verbesserung der Lesbarkeit können Sie sauberere und wartbarere Programme schreiben. Unabhängig davon, ob Sie mit komplexen Datenstrukturen arbeiten oder einfach nur versuchen, Ihre Typprüfungen zu optimieren, ist der Mustervergleich ein wertvolles Werkzeug in Ihrem Java-Toolkit.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/adaumircosta/understanding-pattern-matching-in-java-3f0k?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3