簡體   English   中英

在Java中如何從內部引用匿名內部類?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM