public boolean isInstance(Object obj)java
斷定指定的 Object 是否與此 Class 所表示的對象賦值兼容。此方法是 Java 語言 instanceof 運算符的動態等效方法。api
若是指定的 Object 參數非空,且可以在不引起 ClassCastException 的狀況下被強制轉換成該 Class 對象所表示的引用類型,則該方法返回 true;不然返回 false。數組
特別地,當該 Class 對象表示一個已聲明的類時,若指定的 Object 參數是所表示類(或其任一子類)的一個實例,則此方法返回 true;不然返回 false。
若是此 Class 對象表示一個數組類,且經過身份轉換或擴展引用轉換,指定的 Object 參數能轉換爲一個數組類的對象,則返回 true;不然返回 false。若是此 Class 對象表示一個接口,且指定 Object 參數的類或任一超類實現了此接口,則此方法返回 true;不然返回 false。spa
若是此 Class 對象表示一個基本類型,則此方法返回 false。code
參數:對象
obj - 要檢查的對象接口
返回:io
若是 obj 是此類的實例,則返回 trueast
注意紅色標註部分:class
1.與 instanceof 運算符等效,只是用法有區別而已
2.obj爲null,直接返回false;本方法與 強制轉換 或 class.cast(Object obj) 轉換結合在一塊兒使用
if(Person.class.isInstance(obj)){ Person temp = Person.class.cast(obj); }
3.isInstance方法適用於對象,不適用於基本類型