class A {}

class B {}

public class Demo {

    public static void main(String[] args) {

        A a = new A();
        System.out.println(a instanceof B);
    }

}


此代码给出了编译时错误。
当对象不是指定的类的实例时,如何使用instanceof给出false而不是编译时错误。

最佳答案

Java知道A不能为B,因此不会编译。如果将行更改为

Object a = new A();


它将编译(并返回false),因为它不再能够确定Object是否可以转换为B类型。

10-04 19:12