Java';s奇怪行为的实例

Java';s奇怪行为的实例,java,boolean,instanceof,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.w

有人能解释为什么下面的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”的警报,并且不知道这是怎么可能的。

可能shape为null?instanceof在这种情况下返回false。

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

我们可以看到调用该类的代码吗?请提供更多信息:如果您可以提供确切的多段线类,它会有所帮助;是javafx.scene.shape.Polyline还是其他类?向我们展示如何调用此代码;什么物体以形状传递?谢谢!我对那件事茫然不知所措。。。我打印出了这个类,这使我不再认为它是空的,但果不其然,它是空的。