2013-01-21 12 views
0

我收到此警告:警告:[靜態]靜態方法應該通過類型名稱,AnchorPane限定,而不是由表達錯誤是什麼意思?警告:[靜態]靜態方法應該通過類型名稱,AnchorPane而不是表達式來限定

這裏是我的代碼:

public Chart(Vector<String[]> v, final Pane p, final AnchorPane ap){ 
    super(); 
    this.v = v; 
    p.heightProperty().addListener(new ChangeListener<Number>() { 
     public void changed(ObservableValue<? extends Number> ov, 
     Number old_val, Number new_val) { 
      draw(); 

      System.out.println(heightProperty().doubleValue()+" "+ap.getBottomAnchor(p)); 

     } 
    }); 
} 

回答

5

AnchorPane.getBottomAnchor()是一個靜態方法。靜態方法與類關聯,而不是實例,因此應該用類名稱來調用,而不是通過引用來調用。原因是爲了避免混淆最終調用哪個方法,因爲靜態方法不能被覆蓋。另請參閱https://stackoverflow.com/a/2629846/1611055獲取一些更好的附加信息。

嘗試

System.out.println(heightProperty().doubleValue()+" "+AnchorPane.getBottomAnchor(p)); 
+0

謝謝,我只是想通了這一點。 – user1958884

相關問題