java怎么判斷為基本類型??


     有時候我們在開發的時候需要當前的類型是不是基本類型,你會怎么做?是使用"getClass().getName()"方法嗎?這種方法也可以判斷,但是java中已經給我們寫好了方法,我們只需要調用一下就可以了,不需要寫大量的邏輯判斷,為我們提供了方便,也節省了大量的時間。下面都是Class類中提供的一些便利的方法。

(1)class類提供了isPrimitive()方法

這個方法判斷指定的 Class 對象是否表示一個基本類型或者void類型,為什么要把void放到這個方法中我也不太清楚,如果Class對象為表示八個基本類型和void則為true,否則false。所以以后我們可以直接使用這個方法來判斷對象是不是基本類型。注意基本類型的包裝類不屬於基本類型,調用這個方法的返回值為false。

實例如下:

        // 基本類型判斷
        System.out.println( BigDecimal.class.isPrimitive());
        System.out.println(int.class.isPrimitive());
        System.out.println(void.class.isPrimitive());
        System.out.println( TestBigdecimal.class.isPrimitive());
        System.out.println(Class.class.isPrimitive());
        
        運行結果:
        false
        true
        true
        false
        false

 

我們也來擴展一下其他的知識點。

(2)class類也提供了判斷是不是數組類型方法isArray()。

(3)getName()返回此 Class對象表示的實體名稱。

  • 如果此類對象表示的引用類型不是數組類型,則返回該類的二進制名稱
  • 如果此類對象表示基本類型或void,則返回的名稱是一個 String 字符串
  • 如果此類對象表示一類數組,則名稱的內部形式由元素類型的名稱組成,其后一個或多個“[”字符表示數組的深度嵌套。

    關於第三點中說的元素類型,列出來一張元素類型表:

元素類型 編碼
boolean Z
byte B
char C
class or interface Lclassname;
double D
float F
int I
long J
short S

   實例如下:

       // getName
        long[] a2 = new long[] {1,2,3,4};
        String[] a3 = new String[] {"1","2","3","4"};
        System.out.println(Integer.class.getName());
        System.out.println(a1.getClass().getName());
        System.out.println(a2.getClass().getName());
        System.out.println(a3.getClass().getName());
        System.out.println(int.class.getName());
        System.out.println(String.class.getName());
        List<String> str = Arrays.asList( a3 );
        System.out.println(str.getClass().getName());
        System.out.println(str.getClass().isArray());
        
        運行結果:
            java.lang.Integer
            [I
            [J
            [Ljava.lang.String;
            int
            java.lang.String
            java.util.Arrays$ArrayList
            false

(4)判斷數組中元素類型方法 getComponentType()

    getComponentType()方法返回表示數組的組件類型的Class,也就是說返回數組的每個元素的類型。如果此類不表示數組類,則此方法返回null。

   實例如下:

       // 返回數組的元素類型
       int[] a1 = new int[] {1,2,3,4};
       System.out.println(a1.getClass().getComponentType());
       System.out.println(a1.getClass());
       System.out.println(int.class.getComponentType());
       
       運行結果:
           int
           class [I
           null

 上面的方法都是Class類中的方法,Class類里面的方法還有很多,后續我會把一一解析的。

 


免責聲明!

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



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