Java でのパターン マッチングを理解する

王林
リリース: 2024-07-27 09:26:12
オリジナル
840 人が閲覧しました

Understanding Pattern Matching in Java

パターン マッチングは、Java に導入された強力な機能で、コードを簡素化し、可読性を高めることができます。最初に Java 14 で instanceof チェック用に導入され、後のバージョンで拡張されたパターン マッチングにより、ボイラープレートを削減することで、より表現力豊かで簡潔なコードが可能になります。

パターンマッチングとは何ですか?

パターン マッチングを使用すると、オブジェクトからコンポーネントを抽出し、簡潔な方法で特定の条件を適用できます。これは、パターンに対して値をチェックし、一致が成功した場合はパターンから変数をバインドする機能です。

パターンマッチングの利点

  1. 簡潔なコード: 定型コードを削減し、プログラムを短くして読みやすくします。
  2. 可読性の向上: 構造がより明確になり、コードの明瞭さが向上します。
  3. 型安全性: 変数が正しく型指定されていることを保証し、実行時エラーの可能性を減らします。

インスタンスオブによるパターンマッチング

パターン マッチングの最も一般的な使用法の 1 つは、instanceof 演算子を使用したものです。以下に例を示します:

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");
        }
    }
}
ログイン後にコピー

この例では、instanceof 演算子は、obj が String かどうかをチェックするだけでなく、それを String にキャストし、それを 1 つのステップで変数 s にバインドします。

Switch 式を使用したパターン マッチング

パターン マッチングはスイッチ表現にも使用され、その能力と柔軟性を高めます。以下はシールされたクラスを使用した例です:

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);
    }
}
ログイン後にコピー

この例では、switch 式はパターン マッチングを使用して Shape オブジェクトを構造解除し、関連データを抽出します。

結論

Java のパターン マッチングは、コードに新しいレベルの表現力と単純さをもたらします。定型文を減らして可読性を高めることにより、よりクリーンで保守しやすいプログラムを作成できるようになります。複雑なデータ構造を扱う場合でも、単に型チェックを合理化しようとしている場合でも、パターン マッチングは Java ツールキットの貴重なツールです。

以上がJava でのパターン マッチングを理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート