Java的奇怪行为的实例

use*_*819 9 java boolean instanceof

任何人都可以解释为什么下面的if语句评估为false?

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");
}
Run Code Online (Sandbox Code Playgroud)

它接收一个"PolyLine"对象,但是instanceof返回false,因为我得到一个警告"2",然后是一个警告"4",并且不知道它是如何可能的.

pho*_*ser 13

也许形状是空的?在这种情况下,instanceof返回false.


Eng*_*uad 11

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