我想檢查是否有類對象表示其他類 的例如如何確定一個類是否是其他類的子類?
Class class1 = Class.forName("Class1");
Class class2 = Class.forName("Class2");
if(class1.isSubClassOf(class2)) // fake methos isSubClassOf
{
// do sth
}
我怎樣才能實現這個isSubClassOf方法的子類?
我想檢查是否有類對象表示其他類 的例如如何確定一個類是否是其他類的子類?
Class class1 = Class.forName("Class1");
Class class2 = Class.forName("Class2");
if(class1.isSubClassOf(class2)) // fake methos isSubClassOf
{
// do sth
}
我怎樣才能實現這個isSubClassOf方法的子類?
Class.isAssignableFrom()雖然也處理接口,但它提供了或多或少的好處,因此可能需要做更多的額外工作以確保它是子類,直接或其他。
instanceof operator,IIRC。
但是,你永遠不應該這樣做。向適用的類中添加一個方法並完成它。
不,instanceof用於比較類的實例,而不是類本身。 – skaffman 2008-10-01 07:23:26
我搞不清楚哪個類是哪個類的,閱讀該方法的javadoc。如果你有'class SubClass extends SuperClass`:`SuperClass.class.isAssignableFrom(SubClass.class)`是真的,而`SubClass.class.isAssignableFrom(SuperClass.class)`是假。所以這與OP虛構的「isSubClassOf」方法相反。 – MatrixFrog 2011-07-15 22:49:05