匿名類一定是內(nèi)部類嗎 在方法中定義的內(nèi)部類可以訪問外部類的成員變量嗎?
在方法中定義的內(nèi)部類可以訪問外部類的成員變量嗎?首先,內(nèi)部類和外部類處于同一級別。因為內(nèi)部類是在方法中定義的,所以在方法執(zhí)行后不會銷毀跟隨者。問題是,如果外部類的方法中的變量沒有定義final,那么在
在方法中定義的內(nèi)部類可以訪問外部類的成員變量嗎?
首先,內(nèi)部類和外部類處于同一級別。因為內(nèi)部類是在方法中定義的,所以在方法執(zhí)行后不會銷毀跟隨者。問題是,如果外部類的方法中的變量沒有定義final,那么在執(zhí)行外部類的方法時,局部變量將是GC。但是,在執(zhí)行內(nèi)部類的方法之前,找不到它引用的外部變量。如果它被定義為final,Java將復(fù)制這個變量并將它作為成員變量構(gòu)建到內(nèi)部類中。這樣,因為final修改的值不能更改,所以該變量指向的內(nèi)存區(qū)域不會更改。