在静态块中初始化地图与将其作为声明的一部分进行初始化相比有优势吗?
初始化作为声明的一部分:
private static final Map<String, Integer> init1 = Map.ofEntries(Map.entry("1" , 1),
Map.entry("2" , 2));
初始化静态块:
private static final Map<String , Integer> init2 ;
static {
init2 = Map.ofEntries(Map.entry("1" , 1),
Map.entry("2" , 2));
}
如果您将有一些复杂的初始化逻辑,例如错误处理或循环,静态块只有一个优势。请参阅初始化字段
如果初始化需要一些逻辑(例如,错误处理或填充复杂数组的 for 循环),简单的赋值是不够的。实例变量可以在构造函数中初始化,其中可以使用错误处理或其他逻辑。为了为类变量提供相同的功能,Java 编程语言包括静态初始化块。
在您的示例中,两种情况都是相同的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句