我正在定義一個回調函數,並想引用自身內部的回調函數。編譯器不喜歡這個,並聲稱引用該回調的變量未被初始化。下面的代碼:在Java中,我如何從內部引用一個匿名內部類?
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,所以我可能在這裏咆哮錯誤的樹。有沒有其他一些慣用的方法來做到這一點?這對我來說似乎是一個非常簡單的構造。
編輯:當然,這太簡單了。感謝所有快速解答!