看板 java 關於我們 聯絡資訊
※ 引述《losesong (shen)》之銘言: : 大家好 : 小弟在練習使用匿名的inner class的時候遇到了點問題 : 請大家指點迷津一下 : 當我在inner class中去存取其外部class的某個field時 : 若這個field在外部class的建構式中才去宣告,那編譯時就會出現錯誤訊息 : 訊息內容是cannot find symbol,而該symbol就是指那個field : 程式碼的大略示意圖如下: : public class OuterClass { : public OuterClass() { : ClassA refA = new ClassA(); //ClassA有一個我想用到的methodA : } : InnerClass inner = new InnerClass() { : public void innerMethod() { : refA.methodA(); //此處發生編譯錯誤:cannot find symbol,symbol:varible refA : } : }; : } 簡單來說, 第一個例子的 fieldA 根本就不是 OuterClass 的 member field. 既不是一個 member field, inner class 又怎可能存取得到? Alien -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.72.0.45