有人可以解释为什么下面的if语句评估为假?
public void addShapeToWhiteboard(PolyLine shape)
{
Window.alert("2");
if(shape instanceof PolyLine)
{
Window.alert("3");
this.whiteboard.add((PolyLine)shape);
Window.alert("3.5");
}
this.whiteboard.draw();
Window.alert("4");
}
它接受一个“PolyLine”对象,但是instanceof返回false,因为我得到一个警告“2”,然后是一个警告“4”,并且不知道它是如何甚至是可能的。
答案 0 :(得分:13)
也许shape是null?在这种情况下,instanceof返回false。
答案 1 :(得分:11)
我打赌shape
作为null
传递,null
不是任何类的实例。