标签: scala covariance
我需要能够将Class对象相对于其父类型的层次结构进行比较。
我想要一些比较Class[A]和Class[B]的方法。 我需要一种接受类对象的方法,并在A extends B
Class[A]
Class[B]
A extends B
显然我不能使用isInstanceOf,因为Class不是协变的。
isInstanceOf
Class[A].isInstanceOf[Class[B]]返回false。在那种情况下会返回什么?
Class[A].isInstanceOf[Class[B]]
答案 0 :(得分:7)
尝试Class.isAssignableFrom(Class):
Class.isAssignableFrom(Class)
classOf[A] isAssignableFrom classOf[B]