【发布时间】:2011-04-19 18:38:21
【问题描述】:
我正在阅读 Programming in Scala,但我不明白以下句子(pdf p.112):
每个单例对象都作为一个合成类的实例来实现 静态变量,因此它们具有与 Java 静态相同的初始化语义。
这是否意味着如果我在 scala 中有一个单例 FooBar,编译器将创建一个名为 FooBar$ 的类?
另外作者所说的“从静态变量引用”是什么意思?某处是否有一个隐藏的静态变量持有对某些 FooBar$ 类的引用?
感谢您的帮助。
【问题讨论】:
-
是的,我想你明白了。
-
:-( 我没有,我只是猜到了!
-
诀窍在于静态变量引用的是实例,而不是类。换句话说,Scala 对象
FooBar在Java 中被引用为FooBar$.MODULE$。
标签: scala