3

を使用してカスタム インターフェイスに対してカスタム クラスをテストできるのにinstanceof、Java コア クラスでは同じことができないのはなぜですか?

interface A{}
class B{}
public class Tmp {
    public static void main(String [] args) {
        String s = "";
        Integer i = 1;
        B b = new B();
        System.out.println(s instanceof A); //1
        System.out.println(i instanceof A); //2
        System.out.println(b instanceof A); //3
    }
}

行 1 と 2 はコンパイルされません。行 3 はコンパイル (および出力false) します。違いは何ですか?

4

1 に答える 1