を使用してカスタム インターフェイスに対してカスタム クラスをテストできるのに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
) します。違いは何ですか?