我创建了一个类ApplyDemo,其私有构造函数为
class ApplyDemo private{
override def toString()="ApplyDemo"
}
我创建了类的伴侣对象
object ApplyDemo
{
def apply()={
Console.println("calling Apply");
new ApplyDemo
}
}
现在我创建了一个主应用程序类:
object MainApp extends App{
val a=ApplyDemo;
Console.println(a);
}
出于好奇的目的,我在apply方法中放入了一个println语句。但这并不叫。我只是想知道为什么不调用println。
注:类和同伴都在同一个文件
谢谢
我能够在scala repl中得到答案:表达式:
val a= ApplyDemo
将ApplyDemo类型赋值给变量a, scala repl说:
a: ApplyDemo.type = ApplyDemo$@xxxxxx
和表达式
val a= ApplyDemo()
调用同伴类中的apply方法,repl说。
调用应用
a1: ApplyDemo = ApplyDemo
Thanks to bjfletcher