[英]Usage of a non-final local variable within an inner class
可變i
因為變量i的值不別處改性方法巴茲內部定義是effictively最后。 如果你改變它
void baz(){
int i = 0;
i = 2;
class Bar{ int j = i; }
}
代碼將無法編譯,因為變量i
不再是有效的最終結果,但如果您只是聲明變量i並將其初始化為另一行,則代碼將編譯,因為該變量是有效的最終
void baz(){
int i;
i = 2;
class Bar{ int j = i; }
}
i
實際上是最終的,因為它永遠不會被修改。 正如您自己引用JLS一樣,內部類可以有效地使用最終變量。
因為i
在baz
沒有改變,所以i
實際上是最終的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.