※ 引述《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