静态块 按顺序
初始化(因此您可以在下面的代码中依赖上面的代码)。通过在中创建实例
SomeClass作为第一个静态初始值设定项
SomeClass,您将在静态init阶段强制实例init。
因此,代码执行的逻辑顺序为:
- 负载类
SomeClass
,所有静态字段初始默认值(0
,null
,等) - 开始静态初始化
- 第一个静态init创建的实例
SomeClass
SomeClass
例如,使用静态字段的当前值(soobjectName1
和objectName2
arenull
)开始实例初始化。- 加载
SomeObject
类,所有静态字段最初都是默认的(您没有任何字段) - 进行
SomeObject
静态初始化(您没有任何初始化) - 创建
SomeObject
使用传入null
值的实例 - 继续
SomeClass
,,objectName1
和的静态初始化objectName2
要使此工作如您所愿,只需将init
objectName1和
objectName2放在init之上
instance。



