Java 中的最终数组
java programming java8object oriented programming
最终变量只能显式初始化一次。声明为 final 的引用变量永远不能重新分配以引用其他对象。
但是,对象内的数据可以更改。因此,可以更改对象的状态,但不能更改引用。数组也是一个对象,它由引用变量引用,如果将其设置为 final,则无法重新分配。让我们看一些例子来进一步解释。
示例
public class Tester { public static void main(String []args) { final int[] arr = {1,2,3}; //我们可以修改最终对象的属性 arr[1] = 4; for(int i = 0;i < arr.length ; i++) { System.out.println(arr[i]); } } }
输出
1 4 3
现在尝试更改引用变量。编译器将在编译期间抛出错误。
示例
public class Tester { public static void main(String []args) { final int[] arr = {1,2,3}; int[] arr2 = {4,5,6}; //我们不能修改 final 引用 arr = arr2; for(int i = 0;i < arr.length ; i++) { System.out.println(arr[i]); } } }
输出
Tester.java:6: error: cannot assign a value to final variable arr arr = arr2; ^ 1 error