【发布时间】:2023-11-05 19:09:01
【问题描述】:
我正在定义一个回调,并希望从其内部引用回调。编译器不喜欢这样,并声称引用回调的变量未初始化。代码如下:
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:当然,这,那太容易了。感谢所有快速回答!
【问题讨论】:
标签: java callback runnable anonymous-inner-class