パターンマッチングinstanceofはJavaの14

1.概要

この記事では、チュートリアルのJavaの14シリーズの記事はINSTANCEOFパターンマッチングを焦点を当てています。

JEP 305コアの目的は、オブジェクトに、より読みやすく、より安全、よりシンプル、簡潔に、作成することです。

2.従来のINSTANCEOF操作

多くの場合、我々は、オブジェクトの種類を確認し、その後、種類に応じて、異なるロジックを記述する必要があります。INSTANCEOF典型的に決意するために使用され、その後、オブジェクトがキャストされます。

if (animal instanceof Cat) {
    Cat cat = (Cat) animal;
    cat.meow();
   // other cat operations
} else if (animal instanceof Dog) {
    Dog dog = (Dog) animal;
    dog.woof();
    // other dog operations
}
 
// More conditional statements for different animals

上記のコード例では、instanceofをすることによって、動物の特定の型の各場合において決定され、キャスト、ローカル宣言しました。特定の機能や特定のタイプを実行します。

これは、多くの欠点があります。

  • だから、タイプとキャストを検出する必要がある、非常に退屈な書き込み。
  • 各タイプ名3が表示されます場合。
  • 型変換と変数宣言が悪い可読性
  • 繰り返し、平均誤差が発生しやすいタイプの名前を宣言します。これは、予期しない実行時エラーにつながる可能性があります。
  • 動物の各タイプには、ここで変更機能を追加します。

以下は、Java 14提供の特性を改善する説明します。

** 3. Javaの14の改良版INSTANCEOF **

Javaの14は、instanceof演算子の新しいバージョンをもたらす一緒に結ばローカル変数のパラメータの型チェックとタイプをマージします。

if (animal instanceof Cat cat) {
    cat.meow();
} else if(animal instanceof Dog dog) {
    dog.woof();
}

まず、動物の種類や猫は、ブロックマッチングを行った場合。動物の変数を見ては、タイプ猫のインスタンスであり、そうであれば、猫の強いタイプに、そして猫に割り当てられています。

変数名の猫が存在する変数ではなく、状態モード変数ということに注意してください。

唯一の真の発効と割り当てられたのパターンマッチング式の結果であれば、変数の猫と犬。あなたはどこか別の変数、コンパイラエラーを使用している場合。

上述したように、コードのJavaの14バージョンより理解。この方法では、大幅に読みやすさを向上させ、型変換の量を減らすことができます。

また、テストパターンのこのタイプは、関数は等価(等しい)の調製に有用です。

4.おわりに

この短い記事では、Javaのinstanceof 14パターンマッチングを説明します。特徴は、私たちは高品質、より読みやすいコードを書くのに役立つJava言語を使用して構築されました。

いつものように、私たちの完全なコードはできGitHubにはに着きます。

私の記事が参考にした場合、あなたのために!コメントと同様の注意点を歓迎

公開された379元の記事 ウォンの賞賛862 ビュー132万+

おすすめ

転載: blog.csdn.net/w605283073/article/details/105020544