首頁 > Java > java教程 > 主體

Java中instanceof關鍵字和isInstance()方法的差別是什麼

青灯夜游
發布: 2019-03-20 14:48:13
原創
3682 人瀏覽過

instanceof關鍵字和isInstance()方法都用來檢查物件的類,那麼它們之間有什麼區別?以下這篇文章就來帶大家了解一下instanceof關鍵字和isInstance()方法的差別,希望對大家有幫助。

Java中instanceof關鍵字和isInstance()方法的差別是什麼

instanceof關鍵字和isInstance()方法都是用來檢查物件的類,都會傳回一個布林值。但是當我們想要動態檢查物件的類別時,主要差異就出現了。在這種情況下,isInstance()方法將會起作用,而無法透過instanceof運算子來實現這一點。

下面我們透過範例來具體看看instanceof關鍵字和isInstance()方法之間的差異。

使用instanceof關鍵字來檢查物件的類別

public class Test 
{ 
    public static void main(String[] args) 
    { 
        Integer i = new Integer(5); 
  
        // 当i是Integer类的实例时,输出true
        System.out.println(i instanceof Integer); 
    } 
}
登入後複製

輸出:

true
登入後複製

現在,如果我們想在執行時間檢查物件的類,那麼我們必須使用isInstance( )方法。

public class Test 
{ 
    // 此方法告诉我们对象是否是以字符串“c”形式传递名称的类实例。
    public static boolean fun(Object obj, String c) 
                      throws ClassNotFoundException 
    { 
        return Class.forName(c).isInstance(obj); 
    } 
    public static void main(String[] args) 
                      throws ClassNotFoundException 
    { 
        Integer i = new Integer(5); 
  
        // 当i是Integer类的实例时,输出true
        boolean b = fun(i, "java.lang.Integer"); 
  
        // 因为i不是String类的实例,所以输出false
        boolean b1 = fun(i, "java.lang.String"); 
  
        //当integer类扩展number类时,如果我也是number类的实例,则输出true。
        boolean b2 = fun(i, "java.lang.Number"); 
  
        System.out.println(b); 
        System.out.println(b1); 
        System.out.println(b2); 
    } 
}
登入後複製

輸出:

true
false
true
登入後複製

註:如果我們使用未實例化的其他類別檢查對象,則instanceof關鍵字會拋出編譯時錯誤(不相容的條件運算元類型)。

public class Test 
{ 
    public static void main(String[] args) 
    { 
        Integer i = new Integer(5); 
  
        //报错,因为类型不兼容:Integer不能转换为String
        System.out.println(i instanceof String); 
    } 
}
登入後複製

#輸出:

demo.java:10: error: incompatible types: Integer cannot be converted to String
System.out.println(i instanceof String); 
                   ^
1 error
登入後複製

相關影片教學推薦:《Java教學

#以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以追蹤php中文網相關教學欄位! ! !

以上是Java中instanceof關鍵字和isInstance()方法的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!