Java数组的常量

Ath*_* V. 7 java arrays enums

如何在不使用的情况下在Java中声明和初始化常量数组enums?

static final Type[] arrayOfConstants = new Type[10]; // not an array of constants
Run Code Online (Sandbox Code Playgroud)

Tag*_*eev 10

如果你想创建一个不可变数组,不,你不能.Java中的所有数组都是可变的.

如果您只想在类中预定义数组,则可以执行以下操作:

private static final int[] MY_ARRAY = {10, 20, 30, 40, 50};
Run Code Online (Sandbox Code Playgroud)

在这里,我们创建了一个预定义的阵列MY_ARRAY长度为5的,所以MY_ARRAY[0]是10等等.但要小心,即使MY_ARRAY字段被声明为final,也不意味着数组元素无法更改.因此,最好不要将此类数组公开给public via public或protectedmodifier.

  • 不,这不是一个常量数组,这是一个常量数组.我的意思是数组的组件是常量而不是数组本身 (2认同)
  • ...零长度数组除外,它们是安全不变的。 (2认同)

Mus*_*bir 0

-如果您事先知道这些值,请初始化数组值并将该数组标记为final。

-如果您最初不知道这些值,则编写公共 getter/setter 方法并将数组声明为private. 在 setter 方法中编写逻辑,以丢弃对特定元素所做的更改(或在对同一元素进行多次更改时抛出异常)