【问题标题】:Java's instanceof odd behaviorJava 的异常行为实例
【发布时间】:2012-12-20 19:13:13
【问题描述】:

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

【问题讨论】:

  • 我们能看到调用它的代码吗?
  • 请提供更多信息:如果您能提供确切的折线类别,那将有所帮助;是 javafx.scene.shape.Polyline 还是其他类?向我们展示如何调用此代码;什么对象作为形状传入?

标签: java boolean instanceof


【解决方案1】:

也许形状为空?在这种情况下,instanceof 返回 false。

【讨论】:

  • 谢谢!我对此一无所知...我打印了 Class,这让我不认为它是 null 的,但确实如此。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多