我认为下面的代码会编译并打印“否”
class One{
public static void main(String[] args) {
One o = new One();
if(o instanceof Two) {
System.out.println("Yes");
} else {
System.out.println("No");
}
}
}
class Two { }
但它给我一个编译器错误,说明 操作员inconvertible types
不应该instanceof
检查对象是否在继承层次结构中,如果是则返回true
,false
如果不是
编辑:
如果是编译器已经知道某个条件永远不会为真并且引发编译器错误的情况,那么为什么要编译此代码
if(false) {
System.out.println("Yes");
}