获取Class对象的方法及Class类型的一些讨论
(1)Class.forName(className)
(2)classname.Class 如果是数组,则是数组类型[].class
(3)对象.getClass()
例:
1 String path = packagename.classname; //包名,类名 2 3 Class c1 = Class.forName(path); 4 System.out.println(c1.hashCode()); 5 6 Class c2 = Class.forName(path); 7 System.out.println(c2.hashCode());//c1和c2的hashcode相同 8 9 Class c3 = String.class; 10 Class c4 = path.getClass();//path是一个String,所以就表示是String类 11 System.out.println(c3==c4);//true
基本类型也有类对象,而且和它的包装类不是同一个类型。
如:
1 Class c5 = int.class; 2 Class c6 = Integer.class; 3 System.out.println(c5==c6); //false
某个类(包括基本数组类型)的数组和它本身的类对象也是不同的,数组的维数不同类对象也不同。
如:
1 Class c7 = int.class; 2 Class c8 = new int[3].getClass(); 3 System.out.println(c7==c8); //false 4 5 Class c9 = new int[3][4].getClass(); 6 System.out.println(c8==c9); //false