如果我创建一个没有伴侣类的单例对象Main
,有没有办法获得该单例的类? classOf[Main]
给出错误:“找不到:输入Main”。
答案 0 :(得分:3)
由于它是一个类的实例,您可以使用方法Main.getClass
来关闭它。
在幕后,JVM知道Main
是名为Main$
的类的实例,如果需要,可以通过Java反射方法访问它。
说完所有这些之后,反正Scala的反射通常很少,所以你不应该真的需要这个,除非你只是在一个有趣的理论之后。
答案 1 :(得分:0)
Singleton对象,也就是模块,没有“class”,因为你不能从它们继承。将单身人士和阶级视为相反的观念。
他们确实有一种类型:
object Main
def test(a: Main.type): Unit = println("Got: " + a)
test(Main)