同伴类中的Apply方法没有将输出打印到控制台



我创建了一个类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

最新更新