map 的静态 init 与作为声明的一部分的 init

蓝天

在静态块中初始化地图与将其作为声明的一部分进行初始化相比有优势吗?

初始化作为声明的一部分:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Python中使用类的self init一部分

静态字段 - EasyPost - ClientManager Init

在map()中使用init()

如何使用init参数调用静态成员

非静态块Android中的init方法

类型声明是静态类型语言优点的很大一部分吗?

能否在python类的__init__中使用静态方法作为默认参数?

将对象作为ng-map标记的一部分传递

如何在Kotlin的类外部定义静态init块?

如何防止创建模拟对象以运行静态init?

swift - 为什么全局静态变量不是 init?

gcc / ld:静态链接的ELF二进制文件中的重叠部分(.tbss,.init_array)

__init__作为构造函数?

部分执行的init.sql

在Spring启动时调用需要bean的静态init方法,而无需暴露另一个bean

静态外部void Buffer.InternalBlockCopy是.NET Framework的一部分吗?

Kotlin中的静态变量是否仍然是实例对象的一部分

为什么静态数据成员不是c ++中对象的一部分?

网站的一部分可以是静态网站生成,而另一部分可以是传统水疗中心吗?

在 __init__ 下声明的普通变量

在ng-init中声明多个值

for循环的init语句中的变量声明

在 __init__ Python 之外声明的变量

使用元类作为默认属性init

类作为python __init__中的参数

使用ELF文件的“ .init_array”部分

从Map <String,List <Object >>的一部分List <Object>中删除值

是否可以仅映射数组的一部分?(Array.map())

将嵌套的 Json 对象的一部分转换为 Java Map