基本的 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){}
}