0

我使用了一个局部变量来存储this,以便使其可以在内联覆盖中访问,但对此并不满意。有没有更优雅的方式来做到这一点?

public class Tree extends Plant {
    public Tree() {
        timeline = new Timeline(new KeyFrame(Duration.millis(40), new EventHandler<ActionEvent>() {
        final Plant tree = this; // <---- here
            @Override
            public void handle(ActionEvent actionEvent) {

                tree.setA(5); // <---- and here
            }
        }));

        timeline.setCycleCount(Timeline.INDEFINITE);
    }
}
4

1 回答 1

2

你应该使用Tree.this. 由于您正在尝试访问有关Tree另一个类(即EventHandler)内部对象的信息,this因此需要进行限定,以便编译器知道您在说什么。

于 2013-11-05T15:23:27.540 回答