在Scala中获取Main类

时间:2011-01-06 13:44:16

标签: class scala main

如果我创建一个没有伴侣类的单例对象Main,有没有办法获得该单例的类? classOf[Main]给出错误:“找不到:输入Main”。

2 个答案:

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