instanceof, isinstance,isAssignableFrom的區別


instanceof運算符 只被用於對象引用變量,檢查左邊的被測試對象 是不是 右邊類或接口的 實例化。如果被測對象是null值,則測試結果總是false。 
形象地:自身實例或子類實例 instanceof 自身類  返回true 
例: String s=new String("javaisland"); 
      System.out.println(s instanceof String); //true 

Class類的isInstance(Object obj)方法,obj是被測試的對象,如果obj是調用這個方法的class或接口 的實例,則返回true。這個方法是instanceof運算符的動態等價。 
形象地:自身類.class.isInstance(自身實例或子類實例)  返回true 
例:String s=new String("javaisland"); 
      System.out.println(String.class.isInstance(s)); //true 

Class類的isAssignableFrom(Class cls)方法,如果調用這個方法的class或接口 與 參數cls表示的類或接口相同,或者是參數cls表示的類或接口的父類,則返回true。 
形象地:自身類.class.isAssignableFrom(自身類或子類.class)  返回true 
例:System.out.println(ArrayList.class.isAssignableFrom(Object.class));  //false 
      System.out.println(Object.class.isAssignableFrom(ArrayList.class));  //true


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM