Scala中的伴随对象的类型是什么?

时间:2018-01-19 04:01:54

标签: scala

例如,我有:

class AClass {

}
object AClass{

}

.....

println(AClass.getClass.toString)
println((new AClass).getClass.toString)
println(AClass.toString)
println((new AClass).toString)

当我尝试打印出类和伴随对象的类型时,我得到了:

class tmp.AClass$
class tmp.AClass
tmp.AClass$@44a664f2
tmp.AClass@7f9fcf7f

我认为类AClass的类型是AClass。

伴随对象AClass的类型是什么? AClass$中的美元符号的含义是什么?

AClass类的类型是什么?我可以直接使用AClass类而不用它的实例吗?

1 个答案:

答案 0 :(得分:4)

美元符号是JVM上类名的有效部分。您将看到它在生成的类中常用。所以AClass$只是一个普通的类名,没有什么特别之处。

当然,只有它被编译到的运行时类型。在scala代码中,AClass的随播广告类型为AClass.type