java 九个预定义Class对象

基本的 Java 类型(boolean、byte、char、short、int、long、float 和 double)和关键字 void通过class属性也表示为 Class 对象;

Class类中boolean isPrimitive() :判定指定的 Class 对象是否表示一个基本类型。

包装类和Void类的静态TYPE字段;

Integer.TYPE == int.class ;         

Integer.class == int.class;             

 数组类型的Class实例对象:

Class<String[]> clz = String[].class;

数组的Class对象如何比较是否相等? 数组的维数和数组的类型;

Class类中 boolean isArray() :判定此 Class 对象是否表示一个数组类型。

 

 

 

package junereflect624;

 

public class PreClassDemo2 {

    public static void main(String[] args) {

       

        Class<?> in = int.class;

        System.out.println(in);//int

        Class<?> in2 = Integer.class;

        //包装类都有一个常量TYPE,用来表示其基本数据类型的字节码

        Class<?> in3 = Integer.TYPE;

       

        System.out.println(in2);//class java.lang.Integer

        System.out.println(in3);//int

        System.out.println(in3 == in);//true 包装类都有一个常量TYPE,用来表示其基本数据类型的字节码,所以这里会相等!

        System.out.println(in3 == in2);//false

        Class<String[]> s = String [].class;

        Class<int[]> i = int [].class;

        //System.out.println(i ==s);//编译根本就通过不了,一个是int,一个是String

    }

    //这两个自定义的方法是可以的,一个int,一个Integer//包装类与基本数据类型的字节码是不一样的

    public void show(int i){}

    public void show(Integer i){}

}

posted @ 2019-07-05 10:22  樊伟胜  阅读(388)  评论(0编辑  收藏  举报