(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