[英]In Java how can I reference an anonymous inner class from within itself?
我正在定義一個回調,並希望從內部引用回調。 編譯器不喜歡這樣,並聲稱引用回調的變量未初始化。 這是代碼:
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,所以我可能會在這里咆哮錯誤的樹。 有沒有其他慣用的方法來做到這一點? 對我來說,這似乎是一個非常簡單的構造。
編輯:當然,這個,太容易了。 感謝所有快速解答!
為什么不使用:
doStuffWith(this);
我可能錯了,但我認為你想要替換doStuffWith(callback);
用doStuffWith(this);
。
http://download.oracle.com/javase/tutorial/java/javaOO/thiskey.html
您必須使用關鍵字試過this
?
您可以使用this
而不是callback
(剛剛試了一下,我的編譯器不抱怨的方式,但如果你使用this
它不:
final Runnable callback = new Runnable() {
public void run() {
if (something()) {
doStuffWith(this);
}
}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.