如何获取scala对象类型的classOf

fkvaft9z  于 4个月前  发布在  Scala
关注(0)|答案(4)|浏览(50)

我想知道如何在Scala中为一个对象类型获取一个类对象。好吧,这是一个满嘴的东西,因为object的双重含义。所以这里有一个会失败的例子:

object Main
{
   private [this] val TAG = classOf [Main].getName;
} // Main

字符串
如果Main是类的话,它就能完美地工作。有什么想法吗?

jckbn6z7

jckbn6z71#

scala> Main.getClass
res1: java.lang.Class[_] = class Main$

字符串

70gysomp

70gysomp2#

classOf[Main]不工作的原因是因为Main不是类型
类和trait定义类型,而对象不定义。

cygmwpex

cygmwpex3#

由于Main是一个对象,为了让示例工作,只需将赋值行替换为;

private [this] val TAG = this.getClass.getName;

字符串

oipij1gg

oipij1gg4#

可以引用对象类型。例如:

classOf[Main.type]

字符串

相关问题