在 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中文网其他相关文章!