zoukankan      html  css  js  c++  java
  • 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类里面的方法还有很多,后续我会把一一解析的。

  • 相关阅读:
    活脑筋的相信机会!
    亿万富翁巴菲特的理财习惯大揭秘
    让你的创业失败的18个昏招 都归结到这里
    创业成功的基础:时间管理
    三个故事的启发
    张瑞敏:借来的火点不亮自己的心灵
    李嘉诚谈管理艺术:想当老板还是领袖
    高燃:“80后人精儿”是这样炼成的
    比尔盖茨的11条人生箴言(英汉对照)
    笔者认为,中国的互联网行业需要真正的CEO
  • 原文地址:https://www.cnblogs.com/shoshana-kong/p/14982512.html
Copyright © 2011-2022 走看看