程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Java判斷類和實例的關系

Java判斷類和實例的關系

編輯:JAVA綜合教程

Java判斷類和實例的關系


?? 通常我們使用instanceOf關鍵字來判斷一個對象是否是類的實例,最近博主看到isInstance關鍵字,不解與instanceOf的區別,故度娘了一下,順便漲了一下姿勢。
?? Java中判斷類和實例的關系有3個關鍵字:instanceof, isInstance以及isAssignableFrom.

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved