我想获得Scala包对象的java.lang.Class
:
应用程序/ package.scala:
package object app {
}
应用程序/ Main.scala:
包应用
object Main extends App {
val _ = app.getClass
}
编译失败:
对象getClass不是包app的成员请注意app扩展 任何,不是AnyRef。这些类型可以参与价值类,但是 实例不能出现在单例类型或引用中 比较。
答案 0 :(得分:3)
您可以在app返回类中定义方法:
package object app {
def cls = getClass
}
答案 1 :(得分:2)
感谢Nyavro的回答。
似乎package对象限制从外部访问其内置成员,并获得对包对象的完全访问权限,我们可以执行以下操作:
package object app {
val instance = this
}
并使用它:
app.instance.getClass