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