【发布时间】:2013-05-13 10:38:30
【问题描述】:
我需要在运行时从给定的类中获取所有接口(全部在 ClassLoader 中加载)。
例如,如果一个类是这样声明的:
trait B
trait C
trait D
class A extends B with C with D
我想在运行时获取此信息:A 依赖于 B、C 和 D。 java getInterfaces()(或 clapper 库中的 interfaces())方法只给出第一个依赖项,即:A 依赖于 B。
有没有办法做到这一点?
我想通过反思但我不知道如何?
【问题讨论】:
-
问题是我不知道类先验。所以我不能调用 typeOf[A] 我得到的是一个通过读取目标/类并用 Class.forName 激发它们构建的类列表,以便我在运行时获得一个未知类的列表。 val classes: List[Class[_] = ... // 我的读取类列表 classes.map{c=> c-> ???} // 映射及其接口
标签: scala reflection traits mixing scala-java-interop