instanceof はインターフェイスできません。その理由は、instanceof キーワードは、オブジェクトが特定のクラスのインスタンスであるかどうかを確認するために使用され、インターフェイスはインスタンス化できないため、オブジェクトがインターフェイスのインスタンスであるかどうかを確認するために直接使用することはできないためです。
このチュートリアルのオペレーティング システム: Windows 10 システム、Dell G3 コンピューター。
Java では、instanceof キーワードは、オブジェクトが特定のクラスのインスタンスであるかどうかを確認するために使用されます。インターフェイスはインスタンス化できないため、オブジェクトがインターフェイスのインスタンスであるかどうかを確認するために直接使用することはできません。ただし、オブジェクトがインターフェイスを実装しているかどうかを確認する間接的な方法がいくつかあります。
まず、Java のジェネリックスと型消去について理解する必要があります。 Java では、ジェネリックとはコンパイル時の型チェックに使用されるメカニズムで、変数、パラメータ、戻り値の型などが指定された型に準拠しているかどうかをコンパイル時にチェックできます。型消去は、ランタイム コードがジェネリック型情報を認識しないように、コンパイル時にジェネリック型情報を消去するメカニズムです。
Java では、ジェネリックスと型消去を使用して、List
このようにして、実行時にオブジェクトがインターフェイスを実装しているかどうかを確認できます。たとえば、List
以下は、ジェネリックスと型消去を使用して、オブジェクトが特定のインターフェイスを実装しているかどうかを確認する方法を示す簡単なサンプル コードです。
import java.util.List; public class InstanceOfInterfaceExample { public static <T> T findFirstInstance(List<Object> list, Class<T> interfaceClass) { for (Object obj : list) { if (interfaceClass.isInstance(obj)) { return interfaceClass.cast(obj); } } return null; } }
この例では、findFirstInstance メソッドは A List< を受け入れます。 Object> と Class
以上がなぜinstanceofがインターフェースできるのかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。