获取Class类型对象的三种方式:
-
第一种方式
Class c1 = Class.forName("Student"); //Student代表Student整个类. // 该方法需要处理异常
在此贴上forName()方法的源代码
package java.lang;
...
@CallerSensitive
public static Class<?> forName(String className) throws ClassNotFoundException {
Class<?> caller = Reflection.getCallerClass();
return forName0(className, true, ClassLoader.getClassLoader(caller), caller);
}
-
第二种方式
Class c2= Student.class; //每个类型(包含基本数据类型、引用数据类型)都有class属性
-
第三种方式
Student student = new Student();
Class c3 = student.getClass(); //java中任何一个对象都有getClass()方法
System.out.println(c1==c2); // true
System.out.println(c3==c2); // true
以上c1、c2、c3的内存地址都是相同的,都代表Student这个类