第一种 Class.forName(...)
优缺点:这种方式只要有名称即可,更为方便,扩展性更强;
String className = "cn.com.Book";
Class clazz = Class.forName(className);
第二种 通过类的静态属性.class来获取其对应的Class对象
优缺点:相对简单,但是还是要明确用到类中的静态成员;
Class clazz = Book.class;
第三种 利用对象调用Object的getClass方法
优缺点:想要用这种方式,必须要明确具体的类,并创建对象;
Book book = new Book();
Class clazz = book .getClass();