Java 14 でパターン マッチングを使用して型のマッチングと構造化を行う方法

WBOY
リリース: 2023-07-30 08:35:40
オリジナル
809 人が閲覧しました

Java 14 でパターン マッチングを使用して型のマッチングと構造化を行う方法

はじめに:
Java 14 では、パターン マッチングという重要な新機能が導入されています。パターン マッチングを使用すると、開発者は条件付きステートメントで型のマッチングと構造化操作を実行できるため、コードの記述と読み取りが簡素化されます。この記事では、Java 14 でパターン マッチングを使用して型のマッチングと構造解除を行う方法を紹介し、コード例を示して説明します。

1. 型のマッチング
以前の Java バージョンでは、多くの場合、instanceof 演算子を使用してオブジェクトが特定の型に属するかどうかを判断し、対応する操作を実行する必要がありました。 Java 14 では、パターン マッチングの導入により、型マッチングがより簡潔かつ直感的になりました。

サンプル コードは次のとおりです。

public static void process(Object obj) {
    if (obj instanceof String s) {
        System.out.println("对象是一个字符串:" + s);
        // 在此可以直接使用s进行相关操作
    } else if (obj instanceof Integer i) {
        System.out.println("对象是一个整数:" + i);
        // 在此可以直接使用i进行相关操作
    } else {
        System.out.println("对象不是字符串也不是整数!");
    }
}
ログイン後にコピー

上の例では、instanceof 演算子とパターン マッチングを組み合わせた構文を使用します。つまり、オブジェクトを対応する型に変換して代入します。型を判定しながら値を与える 新しい変数 s または i を与えます。このようにして、条件ステートメントで新しい変数を直接使用して関連する操作を実行できるため、型変換の問題を再度回避できます。

2. 構造化の適用
型マッチングに加えて、パターン マッチングでは、オブジェクトの構造化操作、つまり、より便利な操作のためにオブジェクトのフィールド値を複数の変数に分解する操作もサポートしています。 。

サンプル コードは次のとおりです。

record Point(int x, int y) {}

public static void destructurePoint(Point p) {
    if (p instanceof Point(x, y)) { // 构造解构
        System.out.println("点的坐标是:" + x + ", " + y);
    }
}
ログイン後にコピー

上の例では、Point クラスを定義し、Java 14 の新しいレコード キーワードを使用して不変のデータ クラスを定義しました。次に、destructionPoint メソッドで、instanceof 演算子の構文とパターン マッチングを使用して、p オブジェクトのフィールド値を 2 つの変数 x と y に分解します。このようにして、x と y を直接使用して、関連する操作を実行することができます。フィールド値は通常の getter メソッドを通じて取得する必要があります。

概要:
上記の紹介とサンプル コードを通じて、Java 14 ではパターン マッチングの導入により、型マッチングと分解操作を実行するためのより簡潔かつ直感的な方法が提供されることがわかります。コードの書き込みと読み取りが大幅に簡素化されるだけでなく、コードの読みやすさと保守性も向上します。したがって、開発ではパターンマッチングの機能を最大限に活用して、コードの品質と効率を向上させる必要があります。

以上がJava 14 でパターン マッチングを使用して型のマッチングと構造化を行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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