Heim  >  Artikel  >  Java  >  Mustervergleich in Java verstehen

Mustervergleich in Java verstehen

王林
王林Original
2024-07-27 09:26:12829Durchsuche

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 ausdrucksvolleren und prägnanteren Code durch Reduzierung der Boilerplate.

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, wodurch Ihre Programme kürzer und leichter lesbar werden.
  2. Verbesserte Lesbarkeit: Verbessert die Klarheit Ihres Codes, indem die Struktur deutlicher gemacht 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 Instanceof-Operator. 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

Der 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 Switch-Ausdruck einen Mustervergleich, um die Shape-Objekte zu destrukturieren 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.

Das obige ist der detaillierte Inhalt vonMustervergleich in Java verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Hallo Welt in JavaNächster Artikel:Hallo Welt in Java