2012-04-27 348 views
5

比方說,我有兩個Class對象。有沒有辦法來檢查一個類是否是另一個類的子類?檢查Class對象是否是Java中另一個Class對象的子類型?

public class Class1 { ... } 

public class Class2 extends Class1 { ... } 

public class Main { 
    Class<?> clazz1 = Class1.class; 
    Class<?> clazz2 = Class2.class; 

    // If clazz2 is a subtype of clazz1, do something. 
} 
+4

您是否在尋找:http://stackoverflow.com/questions/3504870/how-to-test-if-one-java-class-extends-another特技的運行時間 – JRaymond 2012-04-27 05:12:50

回答

8
if (clazz1.isAssignableFrom(clazz2)) { 
    // do stuff 
} 

這用來檢查clazz1是相同的,或者一個clazz2超類。

1

您可以檢查這樣的:

if(Class1.class.isAssignableFrom(Class2.class)){ 

} 
相關問題