2012-12-20 3 views
9

아래의 if 문이 false를 평가하는 이유는 누구나 설명 할 수 있습니까?Java의 instanceof 홀수 동작

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에"개체에 걸리지 만, 내가 "4"의 경고 다음에 "2"의 경고를 얻을 그것도 가능 방법 단서가 없기 때문에 instanceof를 false를 반환합니다.

+1

우리는 이것을 호출하는 코드를 볼 수 있습니까? – Woot4Moo

+0

자세한 정보를 제공해주십시오. 정확한 PolyLine 클래스를 제공 할 수 있다면 도움이 될 것입니다. javafx.scene.shape.Polyline 또는 다른 클래스입니까? 이 코드가 어떻게 호출되는지 보여주십시오. 어떤 물체가 형태로 전달되고 있습니까? –

답변

13

모양이 null 일 수 있습니까? 이 경우 instanceof는 false를 반환합니다.

+0

고마워! 나는 그것을 밖으로 숨겼다. .. 나는 클래스 학생들을 인쇄했다. 그리고 그것은 나를 그것이 null 인 생각을 해산하게했다. 그러나 충분히, 그것은이었다. – user1919819

11

나는 shapenull으로 전달되고 null은 어떤 클래스의 인스턴스도 아니므로.