5

我正在尝试列出一个包中的所有类,并通过新的反射 api(2.10) 提取一些元数据信息。

我可能错了,但似乎不支持从 scala api 的包中列出类。

我正在使用java 库,但它只返回Class<?>

可以将 a 转换Class[_]universe.Typeor universe.Symbol?

4

1 回答 1

11

你应该使用scala.reflect.runtime.universeJavaUniverse)的镜像

假设您有一个运行时类:

val cls: Class[_] = someObject.getClass

您应该为您的类加载器获取runtimeMmirror( JavaMirror ) 并调用其classSymbol方法,该方法将运行时类转换为该 Universe 的 ClassSymbol:

import scala.reflect.runtime._

val typ: universe.ClassSymbol = universe.runtimeMirror(cls.getClassLoader).classSymbol(cls)
于 2013-02-21T18:23:46.747 回答