在Java 中,「final」關鍵字用於聲明具有不可變值的變數。但是,您可能會遇到仍可以修改指派給最終變數的物件的情況。此行為需要對 Final 的功能有更深入的了解。
實例變數:
靜態變數:
考慮以下程式碼:
import java.util.ArrayList; import java.util.List; class Test { private final List foo; public Test() { foo = new ArrayList(); foo.add("foo"); // Modification-1 } public static void main(String[] args) { Test t = new Test(); t.foo.add("bar"); // Modification-2 System.out.println("print - " + t.foo); } }
Java 1.8 引入了「有效最終」變數的概念。這些是局部變量,在嵌套類別或匿名內部類別中實際上是不可變的。雖然它們不使用“final”關鍵字,但無法重新分配。
以上是Java的`final`關鍵字如何影響物件修改?的詳細內容。更多資訊請關注PHP中文網其他相關文章!