一、获取Class对象
方式一:类名.class
// 方式一:类名.class
Class<Student> studentClass = Student.class;
System.out.println(studentClass);
方式二:static Class forName(String fullNameWithPackage)
需要注意的是,forName()的参数是类的全类名;最前面的Class后面的泛型可去掉
// 方式二:Class forName(String fullNameWithPackage)
Class studentClass = Class.forName("com.essay.Student");
System.out.println(studentClass);
方式三:new Object().getClass()
// 方式三:new Object().getClass()
Class<? extends Student> studentClass = new Student().getClass();
System.out.println(studentClass);
小结:
这三种方式获取方式,推荐使用第二种
另外值得一提的是,这三种获取方式获取到的Class对象,都是同一个,比较三者的地址值,都是true
// 方式一:类名.class
Class<Student> studentClass1 = Student.class;
// 方式二:Class forName(String fullNameWithPackage)
Class studentClass2 = Class.forName("com.essay.Student");
// 方式三:new Object().getClass()
Class<? extends Student> studentClass3 = new Student().getClass();
System.out.println(studentClass1 == studentClass2);
System.out.println(studentClass1 == studentClass3);