是否可以使用Java最终变量,如.NET只读属性?

Pou*_*BCD 0 .net java

因为你不能设置最终变量的值(我假设)像数组的长度.

Object[] items = new Object[10];

//Not allowed
Object.length = 3;
Run Code Online (Sandbox Code Playgroud)

可以将它用作类中的只读字段.

Jon*_*eet 7

这取决于你的意思"好".你无法改变的原因items.length是这length是一个只读字段; 创建数组后,其大小是固定的.无论是否items声明,您指定的"不允许"行都将无效final.

要明白,做是很重要的items一个final变量只是意味着你不能改变变量的值是指不同的阵列.变量值是引用,而不是数组本身.您无法更改变量引用的数组,但仍可以更改数组的内容:

// Entirely valid...
items[0] = new Object();
Run Code Online (Sandbox Code Playgroud)

如果你想要一些真正不可变的东西,你就不能使用数组.

  • +1空数组是不可变的,但是一个或多个数组是可变的. (2认同)