2012-12-20 18 views
9

Aşağıdaki if deyiminin neden yanlış olduğunu değerlendiren herhangi biri açıklanabilir mi?Java'nın instanceof davranışları

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"); 
} 

bir "PolyLine" nesnesinde alır, ama ben "4" bir uyarısı ardından "2" bir uyarı olsun ve hatta mümkünse nasıl hiçbir ipucu var çünkü instanceof false döndürür.

+1

Bunu çağıran kodu görebilir miyiz? – Woot4Moo

+0

Lütfen daha fazla bilgi verin: Eğer PolyLine'in tam sınıfını sağlayabilirseniz, bu yardımcı olacaktır; javafx.scene.shape.Polyline veya başka bir sınıf mı? Bize bu kodun nasıl çağrıldığını gösterin; Hangi nesne şekil olarak geçiyor? –

cevap

13

Belki şekil boş değil mi? instanceof böyle bir durumda false döndürür.

+0

Teşekkürler! Boşverdim ki ... Sınıfı yazdırdım ve bu bana null olma fikrini reddetti, ama eminim, öyleydi. – user1919819

11

Bahis shape'un null olarak iletildiğini ve null herhangi bir sınıfın örneği değildir.

İlgili konular