我试图列出包中的所有类,并通过新的反射 api(2.10) 提取一些元数据信息。
我可能是错的,但似乎不支持在 scala api 上列出包中的类。
我正在使用java library ,但它仅返回 Class<?>
可以转换 Class[_]
至universe.Type
或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)
关于scala - 将 Class[_] 转换为 Universe.Type/Symbol,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15008367/