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.thisTree別のクラス (つまりEventHandler)内のオブジェクトに関する情報にアクセスしようとしているthisので、コンパイラが何について話しているかを認識できるように、 を修飾する必要があります。

于 2013-11-05T15:23:27.540 に答える