爲何內部類調用的外部變量必須是final修飾的?

由於生命週期的緣由。方法中的局部變量,方法結束後這個變量就要釋放掉,final保證這個變量始終指向一個對象。首先,內部類和外部類實際上是處於同一個級別,內部類不會由於定義在方法中就會隨着方法的執行完畢而跟隨者被銷燬。問題就來了,若是外部類的方法中的變量不定義final,那麼當外部類方法執行完畢的時候,這個局部變量確定也就被GC了,然而內部類的某個方法尚未執行完,這個時候他所引用的外部變量已經找不到
相關文章
相關標籤/搜索