从Scala反射中键入

cla*_*ist 3 reflection scala typechecking

假设我有:

trait A

class B extends A
Run Code Online (Sandbox Code Playgroud)

编译成类文件.后来我加载了反射:

val a = Class forName "A"
val b = Class forName "B"
Run Code Online (Sandbox Code Playgroud)

谁能告诉我如何检查是否b是子类型a

Mor*_*itz 7

使用isAssignableFrom方法Class:

a isAssignableFrom b
Run Code Online (Sandbox Code Playgroud)

这将返回true如果b是的子类/子ab == a.