对象属于哪个类

时间:2017-11-12 17:54:49

标签: scala

我在Scala REPL中写了以下内容。我不明白REPL为我创造了什么。类c的{​​{1}}对象是?如何找到属于Any的班级?

c

2 个答案:

答案 0 :(得分:2)

通过声明object c,您基本上实例化名称为c的单个对象,该对象没有自定义属性或方法。此对象不是Any类型,您可以通过以下方式查看其类:

scala> object c
defined object c

scala> c.getClass
res14: Class[_ <: c.type] = class c$

要了解有关单例对象的更多信息,请阅读参考here。摘录:

  

Singleton对象是定义单次使用的简写   class,不能直接实例化,而val成员在   对象的定义点,具有相同的名称。的确如此   vals,singleton对象可以定义为特征或类的成员,   虽然这是非典型的。

答案 1 :(得分:0)

object c的类(类型)是c.type。通过在Scala中声明一个对象,您隐式定义了class和singleton对象(Scala将为您生成这些对象)。由于类没有在源代码中明确定义,因此存在名为type的特殊对象成员来引用对象的类。