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にはに着きます。
私の記事が参考にした場合、あなたのために!コメントと同様の注意点を歓迎 !