错误是什么意思?警告:[静态]静态方法应该由类型名称AnchorPane限定,而不是由表达式限定

时间:2013-01-21 19:15:42

标签: java javafx pane

我收到此警告:警告:[静态]静态方法应该通过类型名称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));

        }
    });
}

1 个答案:

答案 0 :(得分:7)

AnchorPane.getBottomAnchor()是一种静态方法。静态方法与类相关联,而不是与实例相关联,因此应该通过类名称而不是通过引用来调用。原因是为了避免混淆最终调用哪个方法,因为静态方法无法被覆盖。另请参阅https://stackoverflow.com/a/2629846/1611055以获取一些其他更好的信息。

尝试

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