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

3

我想知道在Java中是否有可能(如果可以的话如何)引用封闭的匿名类实例。

示例代码:

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()
    }
});

self - KSFT
根据这个链接:https://dev59.com/3GMl5IYBdhLWcg3w3aE- 你必须命名/声明一个新类并创建它的实例。 - Shashank
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Aruziell
1个回答

4

如果你也是一名 JavaScript 开发者,那我打赌你不需要问这个问题 :) 有一个微不足道的方法可以实现你想要的(由于其围绕 this 的特殊语义而成为重要的 JavaScript 习惯用法)。

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

1
这正是我所做的!我只是好奇是否可以从继承自“任务”的匿名类内部实现它,但没有外部引用。由于您的代码回答了我的问题,我接受了您的答案。 - Aruziell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接