Java で使用される「instanceof」演算子は何ですか?
Java の instanceof 演算子は、オブジェクトが特定のクラスに属しているかどうかを確認します。特定のインターフェイスを実装します。これはブール値を返す二項演算子です。オブジェクトが指定された型のインスタンスの場合は true、それ以外の場合は false です。
instanceof の動作を理解する
次のコード スニペット:
Object source = new Button(); if (source instanceof Button) { // ... } else { // ... }
この例では、ソース変数は、次を使用して作成されたオブジェクトを保持します。ボタンクラス。 instanceof 演算子は、source が実際に Button オブジェクトであるかどうかを確認するために使用されます。チェックが true を返した場合 (ソースがボタンであるため)、if ブロック内のコードが実行されます。それ以外の場合 (ソースが Button でない場合)、else ブロック内のコードが実行されます。
継承とinstanceof
instanceof 演算子は継承関係を考慮します。次のクラス階層があるとします:
interface Domestic {} class Animal {} class Dog extends Animal implements Domestic {}
Dog オブジェクト Dog がある場合、instanceof を使用して、それが別のタイプに属しているかどうかを確認できます:
dog instanceof Domestic // true dog instanceof Animal // true dog instanceof Dog // true
ただし、 instanceof は、オブジェクトが同じ継承階層内にないスーパータイプのインスタンスであるかどうかをチェックできません。たとえば、次のチェックはコンパイルされません。
dog instanceof Cat // does not compile
ランタイム型チェック
instanceof はランタイム操作であり、プログラムの実行中に実行されることを意味します。これにより、プログラマはオブジェクトのタイプを判断し、それに応じて処理できるようになります。これは、コンパイル時にオブジェクトの型が不明な状況でよく使用されます。
以上がJava の「instanceof」演算子はクラスとインターフェイスのチェックにどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。