2012-10-10 54 views
2

我需要能夠比較Class對象相對於其父類型的層次結構。類對象繼承/協方差

我想要一些方法來比較Class[A]Class[B]。 我需要一些採取類對象的方法,並且當A extends B

需要返回true時顯然我不能使用isInstanceOf,因爲Class不是協變的。

Class[A].isInstanceOf[Class[B]]返回false。在這種情況下會返回什麼?

回答

7

嘗試Class.isAssignableFrom(Class)

classOf[A] isAssignableFrom classOf[B] 
+0

很好啊,那工作。謝謝:)不知何故,我有印象isAssignableFrom是完全一樣的isInstanceOf,但它不是,它對類對象的作品,正是我所需要的。謝謝! – Guillaume