0

请注意:当我们定义类级别变量时,我已经阅读了一些内容:List 或 Map。它们应该始终使用 new 运算符进行初始化:示例 -- private List students = new ArrayList(); 但是架构师反对它,并告诉我它会在类级别初始化变量时消耗 10 个存储桶。但是,我非常反对它:在使用它之前检查学生列表是否为空。

请告诉我最佳做法;我是否应该在类级别初始化数组列表。

请指教。如果您有更好的 Java 编码实践参考 URL 或书名,请提供给我。

4

1 回答 1

1

您的问题没有足够的信息来做出最终裁决。

如果你的整个程序有无数的列表和映射变量,但每次特定的运行只使用其中的几个,那么就存在延迟初始化的情况。然而,这在实践中极为罕见。

就个人而言,我总是更喜欢private final变量来保存容器类型的对象(列表、地图、集合)。清晰的代码,没有错误,更少的冗余检查(如您所见),线程安全(至少就发布而言)。

延迟初始化有很多陷阱,而且缺乏好的论据反对它,急切初始化通常是推荐的最佳实践。

于 2013-08-23T12:23:24.867 回答