我认为对枚举数组的最终引用应该是不可变的。
枚举的唯一性和奇异性是由 JVM 强制执行的,所以我相信可以肯定地说它们是不可变的。
最终引用不能更改,因此该引用是不可变的。
但是......阵列呢?是否仍有可能颠覆包含枚举引用的数组?
我有一个对应于数据库列的枚举列表。这些列名及其相关数据不会改变,所以......我希望将列表作为类变量,如下所示:
static final List<MetaData<Client>> C_COLUMNS =
DataTables.CLIENTS.getTableColumnsAsEnums();
其中 CLIENTS 是为其生成列枚举列表的 DataTable 枚举。执行此操作的方法如下:
public <T extends DB> List<MetaData<T>> getTableColumnsAsEnums() {
Class<? extends MetaData> cls = this.columnsEnumToken();
return new ArrayList(Arrays.<MetaData<T>>asList(cls.getEnumConstants())); }
我对吗?这应该成为多线程设计的一部分,因此我担心制作这个关键的静态数据列表会使应用程序变得非常脆弱……如果它实际上是可变的。