如何在 Java 中引用封闭的匿名 class 实例?

How to refer to enclosing anonymous class instance in Java?

我想知道在 Java 中引用包含 anonymous class 实例是否可能(以及如何实现)。

示例代码:

final Handler handler = new Handler();

handler.post(new Runnable() {
    @Override
    public void run() {
        new Task() {
            @Override
            public void onTaskFinish() {
                handler.post(?); // what should go here?
            }
        }.execute()
    }
});

如果您也是 JavaScript 编码员,我敢打赌您不需要问这个 :) 有一种简单的方法可以实现您想要的(并且恰好是一个重要的 JavaScript 成语,因为它围绕 this).

的特殊语义
handler.post(new Runnable() {
    @Override
    public void run() {
        final Runnable self = this;
        new Task() {
            @Override
            public void onTaskFinish() {
                handler.post(self);
            }
        }.execute()
    }
});