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

标签 java anonymous-class

我想知道在 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()
    }
});

最佳答案

如果您也是 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()
    }
});

关于java - 如何在 Java 中引用封闭的匿名类实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28784624/

相关文章:

java - 仅允许登录用户下载 servlet

Java Swing 组件 - 为什么不推荐使用 HTML 标记?

java - 指定类路径的独立于操作系统的方式

ruby - Ruby 中可以嵌套匿名模块和类吗?

java - 调用匿名类的子类方法

java - 显示不正确修饰符的匿名内部类

java - 合并排序复制上半部分的其余部分

java - 用spring注入(inject)匿名类

java - 修改匿名内部类中的外部变量

java - Tomcat中两个war之间的互通