如何得到各个字节码对应的实例对象(Class类)

时间:2022-11-15 21:48:48

得到字节码文件的三种方法

类名.class,例如,System.class

对象.getClass(),例如,new Date().getClass();

Class.forname("类名") 例如,Class.forName("java.util.Date");

String str1="adddd";
Class cls1=str1.getClass();
Class cls2=String.class;
Class cls3=Class.forName("java.lang.String");
System.out.println(cls1==cls2);
System.out.println(cls1==cls3);
输出结果为两个true

关于 boolean       isPrimitive() 方法

判定指定的 Class 对象是否表示一个基本类型。

有九种预定义的 Class 对象,表示八个基本类型和 void。

这些类对象由 Java 虚拟机创建,与其表示的基本类型同名,即 booleanbytecharshortintlongfloatdouble。 

System.out.println(cls1.isPrimitive());//false
//字符串是一个类,不是基本类型
System.out.println(int.class.isPrimitive());//true
System.out.println(int.class==Integer.class);//false
//Integer是一个包装类,不是基本类型
System.out.println(int.class==Integer.TYPE);//true
//Integer.TYPE 表示基本类型 int 的 Class 实例。
System.out.println(int[].class.isPrimitive());//false
//整形数组不是基本类型
System.out.println(int[].class.isArray());//true
//判断是否为数组