被匿名內部類訪問的區域變數為什么必須使用final修飾?
uj5u.com熱心網友回復:
先說結論:主要是為了保證資料的一致性。匿名內部類之所以可以訪問區域變數,是因為在底層將這個區域變數的值傳入到了匿名內部類中,并且以匿名內部類的成員變數的形式存在,這個值的傳遞程序是通過匿名內部類的構造器完成的
原先區域變數指向的是物件A,在創建匿名內部類后,匿名內部類中的成員變數也指向A物件。但過了一段時間區域變數的值指向另外一個B物件,但此時匿名內部類中還是指向原先的A物件。那么程式再接著運行下去,可能就會導致程式運行的結果與預期不同。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/267228.html
標籤:Java SE
上一篇:C語言新手求助
