伴侣类中的apply方法不会将输出打印到控制台

时间:2015-07-09 17:00:54

标签: scala singleton companion-object

我创建了一个带有私人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都在同一个文件中

由于

1 个答案:

答案 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