该线程是否可以安全地缓存静态列表中的对象

时间:2014-08-26 03:57:08

标签: java

我们有很多配置文件在Web应用程序启动时加载。

这些配置文件被解析为java bean,我们将它们存储在静态List中。

所有这些信息仅供在运行时读取。

目前我只使用ArrayList来执行此操作。

可以吗?

2 个答案:

答案 0 :(得分:0)

你只需要确保:

  • 您永远不会将列表公开为public
  • 您不会从方法
  • 返回列表
  • 只需提供getter方法即可从列表中获取值
  • 不提供更改/添加/删除列表中的值的方法

希望应该这样做。

答案 1 :(得分:0)

由于配置是在应用程序启动时加载的,并且仅用于在运行时读取,因此我将使用Collections.unmodifiableList包装列表并使bean不可变。然后,您不必担心不公开列表。