2008-10-01 92 views
7

我想檢查是否有類對象表示其他類 的例如如何確定一個類是否是其他類的子類?

Class class1 = Class.forName("Class1"); 
Class class2 = Class.forName("Class2"); 

if(class1.isSubClassOf(class2)) // fake methos isSubClassOf 
{ 
    // do sth 
} 

我怎樣才能實現這個isSubClassOf方法的子類?

回答

12

Class.isAssignableFrom()雖然也處理接口,但它提供了或多或少的好處,因此可能需要做更多的額外工作以確保它是子類,直接或其他。

+0

我搞不​​清楚哪個類是哪個類的,閱讀該方法的javadoc。如果你有'class SubClass extends SuperClass`:`SuperClass.class.isAssignableFrom(SubClass.class)`是真的,而`SubClass.class.isAssignableFrom(SuperClass.class)`是假。所以這與OP虛構的「isSubClassOf」方法相反。 – MatrixFrog 2011-07-15 22:49:05

-6

instanceof operator,IIRC。

但是,你永遠不應該這樣做。向適用的類中添加一個方法並完成它。

+2

不,instanceof用於比較類的實例,而不是類本身。 – skaffman 2008-10-01 07:23:26

相關問題