我创建了一个带有私人construtor的类ApplyDemo
class ApplyDemo private{
override def toString()="ApplyDemo"
}
我创建了该类的伴侣对象
object ApplyDemo
{
def apply()={
Console.println("calling Apply");
new ApplyDemo
}
}
现在我创建了一个主app类:
object MainApp extends App{
val a=ApplyDemo;
Console.println(a);
}
为了好奇,我在apply方法中放了一个println语句。但这并没有被称为。 我很想知道为什么不打印println。
P.S。 class和companion都在同一个文件中
由于
答案 0 :(得分:0)
我能够在scala repl中得到答案: 表达:
val a= ApplyDemo
将一种ApplyDemo分配给变量a,scala repl说:
a: ApplyDemo.type = ApplyDemo$@xxxxxx
和表达
val a= ApplyDemo()
在伴侣类中调用apply方法,repl说。
致电申请 a1:ApplyDemo = ApplyDemo
感谢bjfletcher