()Class.isInstance instanceofのアプリケーションとJavaとの間の差を

instanceofのキーワードかどうかを決定するために使用されるクラスのオブジェクトインスタンスのインスタンス、形式:

String.classクラスinstanceofの
文字列instanceofの「テスト」

二、でisinstance()メソッド

Classクラスではなく、オブジェクトのインスタンスは、クラスのインスタンスであるが、反対に向けられているかどうかを決定するためでisinstance方法。

しかし、これは、我々は、この方法が必要なのか、なぜ質問、もたらすでしょう、そう公式文書は説明しました:

この機能を使用すると、我々は2つのクラスが各ターン強いことができるかどうか、実行時に決定することができます。

 使用法の第三に、例

パブリック静的無効メイン(文字列[] args){
        System.out.printlnは( "\"テスト\ "文字列の例: "文字列のinstanceof +("試験"));
        System.out.println( "\"テスト\ "オブジェクトのインスタンス: "オブジェクトのinstanceof +("試験"));
        System.out.println( "\"テスト\ "はgetClass()でisinstance(Object.classを):。。 " +("テスト" .getClass()でisinstance(Object.classを)));
        System.out.println( "\"テスト\ "はgetClass()でisinstance(String.class):。。 " +("テスト" .getClass()でisinstance(String.class)));
        System.out.println( "String.class.isInstance(Object.classを):" +(String.class.isInstance(Object.classを)))。
        System.out.println( "String.class.isInstance(String.class):" +(String.class。

        System.out.println( "String.class.isInstance(\" テスト\ "):" +(String.class.isInstance( "テスト")));


        System.out.println( "Object.class.isInstance(\"テスト\ "):" +(Object.class.isInstance( "テスト")));
        Objectオブジェクト= "OK";
        System.out.println( "Double.class.isInstance(\"テスト\ "):" +(Double.class.isInstance( "テスト")));

        セットA =新しいHashSetの<文字列>()<?>;
        セット<文字列> B =新しいHashSetの<文字列>();
        System.out.println( "Bは:" + aIsB(b)参照)。
    }
   

    aIsB(オブジェクトA、オブジェクトB)ブール静的{
        リターンa.getClass()でisinstance(B)。
    }

出力:

真:文字列の"テスト"インスタンス
オブジェクトの"試験"インスタンス:真
。 "テスト" .getClass()でisinstance(Object.classを):偽
。 "テスト" .getClass()でisinstance(String.class):偽
ストリング。 class.isInstance(Object.classを):偽
String.class.isInstance(String.class):偽
String.class.isInstance( "テスト"):真
Object.class.isInstance( "テスト"):真
Double.class。でisinstance( "テスト"):偽
真:AはBであります

おすすめ

転載: www.linuxidc.com/Linux/2019-10/161182.htm