获取Class对象的方法及Class类型的一些讨论

时间:2023-03-08 21:47:27

(1)Class.forName(className)

(2)classname.Class 如果是数组,则是数组类型[].class

(3)对象.getClass()

例:

 String path = packagename.classname; //包名,类名

 Class c1 = Class.forName(path);
System.out.println(c1.hashCode()); Class c2 = Class.forName(path);
System.out.println(c2.hashCode());//c1和c2的hashcode相同 Class c3 = String.class;
Class c4 = path.getClass();//path是一个String,所以就表示是String类
System.out.println(c3==c4);//true

基本类型也有类对象,而且和它的包装类不是同一个类型。

如:

 Class c5 = int.class;
Class c6 = Integer.class;
System.out.println(c5==c6); //false

某个类(包括基本数组类型)的数组和它本身的类对象也是不同的,数组的维数不同类对象也不同。

如:

 Class c7 = int.class;
Class c8 = new int[3].getClass();
System.out.println(c7==c8); //false Class c9 = new int[3][4].getClass();
System.out.println(c8==c9); //false

相关文章