考虑这样的事情:
object Singleton
val cls: Class[Singleton] = ???
我要写什么而不是
???
?我试过
classOf[Singleton]
, classOf[Singleton.type]
, Singleton.type
,但没有任何效果。(我当然知道
getClass
, classOf
的运行时版本,但这不是我要问的。)
最佳答案
这是一个解决方案,但它并不漂亮......
object Singleton
val cls : Class[Singleton] = Singleton.getClass.asInstanceOf[Class[Singleton]]
编辑:阅读另一个问题/答案后完成解决方案:Scala equivalent of Java java.lang.Class<T> Object
注意1:类型删除会阻止这特别有用,例如在模式匹配中。请参阅上面的引用问题/答案以获得很好的解释
注2:
scala -explaintypes
flag 在理解类型错误方面非常方便。高温高压
关于class - 如何在编译时获取单例对象的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6118129/