今天寫程序,發(fā)現(xiàn)Java 方法內(nèi)部類不能修改方法內(nèi)局部變量,也就是方法內(nèi)的臨時變量在內(nèi)部類中默認final,

test
查閱資料后發(fā)現(xiàn),由于生命周期的不同,內(nèi)部類獲得方法內(nèi)的臨時變量,會首先進行拷貝(capture by value)然后使用。既然進行了拷貝,那么必然涉及到同步的問題,而最簡單的同步方式就是使用不可變對象,因此java 強制內(nèi)部類使用的臨時變量 final。
今天寫程序,發(fā)現(xiàn)Java 方法內(nèi)部類不能修改方法內(nèi)局部變量,也就是方法內(nèi)的臨時變量在內(nèi)部類中默認final,
查閱資料后發(fā)現(xiàn),由于生命周期的不同,內(nèi)部類獲得方法內(nèi)的臨時變量,會首先進行拷貝(capture by value)然后使用。既然進行了拷貝,那么必然涉及到同步的問題,而最簡單的同步方式就是使用不可變對象,因此java 強制內(nèi)部類使用的臨時變量 final。