java - 在 Java 中,如何从自身内部引用匿名内部类?

标签 java callback runnable anonymous-inner-class

我正在定义一个回调,并希望从自身内部引用回调。编译器不喜欢这样,并声称引用回调的变量未初始化。这是代码:

final Runnable callback = new Runnable() {
    public void run() {
        if (someCondition()) {
            doStuffWith(callback); // <<--- compiler says "the local variable callback may not be initialized"
        }
    }
};
// Here callback is defined, and is certainly defined later after I actually do something with callback!

很明显,当我们到达内部方法回调时,编译器误认为它已被定义。我如何告诉编译器这段代码没问题,或者我如何编写不同的代码来安抚编译器?我没有做过太多 Java,所以我可能在这里找错了树。还有其他惯用的方法吗?对我来说,这似乎是一个非常简单的结构。

edit:当然,这个,那个太容易了。感谢所有快速回答!

最佳答案

为什么不使用:

doStuffWith(this);

关于java - 在 Java 中,如何从自身内部引用匿名内部类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4785998/

相关文章:

java - 处理程序、可运行和服务 : I put everything together and it doesn't really work

android - ScheduledThreadPoolExecutor 只有 "ticking"一次

java - 来自您自己创建的类的输入流?

java - Wicket DND - 带 table 的顶部/底部下拉式

java - Liferay ajax 加载错误的 View

java - 如何在不创建实际对象的情况下访问类的已运行实例

java - 找出特定字体中字符串的宽度

ruby-on-rails - around_action 回调如何工作?需要解释

javascript - 为什么我的回调没有被调用?

完整图像加载后的javascript执行函数