什么是Scala等同于Java的静态块?
发布时间:2020-12-16 09:42:47 所属栏目:安全 来源:网络整理
导读:什么是Scala等同于Java的静态块? 解决方法 协同对象的构造函数(即正文)中的代码与Java类的静态初始化块中的代码不完全相同。在下面的示例中,我创建一个A的实例,但不会发生初始化。 scala object Test { class A; object A { println("A.init") }} defined
什么是Scala等同于Java的静态块?
解决方法
协同对象的构造函数(即正文)中的代码与Java类的静态初始化块中的代码不完全相同。在下面的示例中,我创建一个A的实例,但不会发生初始化。
scala> object Test { class A; object A { println("A.init") }} defined module Test scala> new Test.A res3: Test.A = Test$A@3b48a8e6 scala> Test.A A.init res4: Test.A.type = Test$A$@6e453dd5 要在创建类的第一个实例时触发协同对象的构造,您可以从类构造函数访问它。 scala> object Test { class A { A }; object A { println("A.init") }} defined module Test scala> new Test.A A.init res5: Test.A = Test$A@4e94a28e scala> new Test.A res6: Test.A = Test$A@30227d4e 在许多情况下,差异并不重要。但如果你发射导弹(或其他副作用),你可能会关心! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |