奇怪行为的Java实例

时间:2012-12-20 19:13:13

标签: java boolean instanceof

有人可以解释为什么下面的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”,并且不知道它是如何甚至是可能的。

2 个答案:

答案 0 :(得分:13)

也许shape是null?在这种情况下,instanceof返回false。

答案 1 :(得分:11)

我打赌shape作为null传递,null不是任何类的实例。