如何防止ArrayList被结构修改?

Zee*_*han 0 java collections final arraylist

我正在映射一个表...说Employee到ArrayList<Employee>一个类级变量,我将在多个地方使用它,而不是每次都访问数据库.

我想把它保持为只读,即.没有人可以添加或删除ArrayList曾经填充过的元素.

有人可以建议一种方法来实现这一目标吗

编辑:修改后我想要Exception抛出一些东西.

提前致谢

ζ--*_*ζ-- 5

你可以用Collections.unmodifiableList.它将读取传递到后备列表,因此对后备(原始)列表的任何更新都将影响其他类看到的不可变视图.

如果您想要更新主列表时未更新的不可修改列表,则需要调用复制构造函数:

Collections.unmodifiableList(new ArrayList<Employee>(masterList));
Run Code Online (Sandbox Code Playgroud)

在这种情况下,Guava的不可变列表也是一个选项.