【发布时间】:2012-03-18 03:07:50
【问题描述】:
我有一些这样的嵌套对象:
object Routes {
object admin {
def home = "/admin/home/"
def module(m:Module) = "/admin/module/"+m.code
}
}
可通过Routes.admin.module(mymod) 等方式访问。
鉴于 Routes 对象,我希望能够通过其名称“admin”访问管理对象,以便将其公开给我正在使用的模板引擎 (Freemarker)。这是基于我提出的标准 Java 反射 API 的解决方案,似乎可行:
val obj = Routes
val key = "admin"
Class.forName(obj.getClass.getName+key+"$").getField("MODULE$").get(null)
这会找到静态字段Routes$admin$.MODULE$,这是单例对象所在的位置。有没有更简洁的方法不需要嵌入 Scala 字节码命名约定的知识?
【问题讨论】:
标签: scala inner-classes