2011-12-06 41 views
0

如何編寫並調用方法boolean doInstanceof(...),該方法使用對象o和類型t,如果ot的實例,則返回true,否則返回false。如何使用類的類型作爲參數?

喜歡的東西:

boolean doInstanceof(Object o, type t) 
{ 
    return o instanceof t; 
} 

//called like 
boolean isInstance = doInstanceof(new MyClass(), MyClass.type()) 

回答

5

您可以使用Class及其isInstance方法:

boolean doInstanceOf(Object o, Class<?> clazz) 
{ 
    return clazz.isInstance(o); 
} 

boolean isInstance = doInstanceOf(new MyClass(), MyClass.class) 

你要知道,這只是更換一個方法調用另一個 - 你不如直接調用Class.isInstance

boolean isInstance = MyClass.class.isInstance(new MyClass()); 

(我假設那實際上你在編譯時不知道這個類,否則你當然應該只使用instanceof)。

+0

完美,謝謝。 – ab11

相關問題