从Scala反射中键入

时间:2011-10-04 13:28:48

标签: scala reflection typechecking

假设我有:

trait A

class B extends A

编译成类文件。 后来我使用反射加载那些:

val a = Class forName "A"
val b = Class forName "B"

有人可以告诉我如何检查ba的子类型吗?

2 个答案:

答案 0 :(得分:7)

使用isAssignableFrom中的Class方法:

a isAssignableFrom b

如果trueba的子类/子接口,则返回b == a

答案 1 :(得分:2)

您只需在getInterfaces上调用b方法,然后遍历数组以查看其中是否有任何等于a