我正在尝试列出一个包中的所有类,并通过新的反射 api(2.10) 提取一些元数据信息。
我可能错了,但似乎不支持从 scala api 的包中列出类。
我正在使用java 库,但它只返回Class<?>
可以将 a 转换Class[_]
为universe.Type
or universe.Symbol
?
我正在尝试列出一个包中的所有类,并通过新的反射 api(2.10) 提取一些元数据信息。
我可能错了,但似乎不支持从 scala api 的包中列出类。
我正在使用java 库,但它只返回Class<?>
可以将 a 转换Class[_]
为universe.Type
or universe.Symbol
?
你应该使用scala.reflect.runtime.universe
(JavaUniverse)的镜像
假设您有一个运行时类:
val cls: Class[_] = someObject.getClass
您应该为您的类加载器获取runtimeMmirror
( JavaMirror ) 并调用其classSymbol
方法,该方法将运行时类转换为该 Universe 的 ClassSymbol:
import scala.reflect.runtime._
val typ: universe.ClassSymbol = universe.runtimeMirror(cls.getClassLoader).classSymbol(cls)