欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java對象類型的判斷詳解

 更新時間:2019年04月28日 11:55:03   作者:zeling1005  
這篇文章主要介紹了Java對象類型的判斷,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

instanceof

判斷某個對象是否是某個類的實(shí)例或者某個類的子類的實(shí)例。它的判斷方式大概是這樣的:

public<T> boolean function(Object obj, Class<T> calzz) {
    if (obj == null) {
      return false;
    }
    try {
      T t = (T) obj;
      return true;
    } catch (ClassCastException e) {
      return false;
    }
  }

Class.equals()

這種方式比較的類型,一定是本身才返回true,子類或者父類都返回false;

 // B是A的子類,C是B的子類
    B b = new B();
    // false
    System.out.println(b.getClass().equals(A.class));
    // true
    System.out.println(b.getClass().equals(B.class));
    // false
    System.out.println(b.getClass().equals(C.class));

PS:b.getClass().equals(A.class)等同于b.getClass() == A.class

Class.isInstance()

這個方法跟instanceof完全等價。

 // B是A的子類,C是B的子類
    B b = new B();
    // true
    System.out.println(A.class.isInstance(b));
    // true
    System.out.println(B.class.isInstance(b));
    // false
    System.out.println(C.class.isInstance(b));

Class.isAssignableFrom

判斷某個類是否是另一個類和其子類。

 // B是A的子類,C是B的子類
    // false
    System.out.println(B.class.isAssignableFrom(A.class));
    // true 
    System.out.println(B.class.isAssignableFrom(B.class));
    // true
    System.out.println(B.class.isAssignableFrom(C.class));

以上所述是小編給大家介紹的Java對象類型的判斷詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評論