目录
三种获取class类对象的方法比较
1.实例对象.getClass()
2.类名.class
3.Class.forName("全类名")
三种获取class类对象的方法比较
备注:因为本人对于三种方法理解还是停留在比较表面的阶段,先做一个简单的比较,如果有错误,还请各位大神指正。
1.实例对象.getClass()
需要先实例化对象,或者想通过实例化对象获取class,需要用到new关键字
Date date = new Date();
通过调用实例对象date父类Object.java的getClass()方法获取
/**
* Returns the runtime class of this {@code Object}.
*/
public final native Class<?> getClass();
Class<? extends Date> dateClass = date.getClass();
这种方式必须要在类的开头导入
import java.util.Date;
2.类名.class
不需要实例化的对象,不需要用到new关键字
Class<?> dateClass = java.util.Date.class;
3.Class.forName("全类名")
不需要实例化对象,不需要导入类,全类名以字符串的形式传入,不需要用到new关键字
Class<?> dateClass = Class.forName("java.util.Date");
以前加载数据库驱动时候经常用到,但是当时不明白是什么意思
Class.forName("com.mysql.jdbc.Driver")
总结:
方法 | new(实例化) | import |
---|---|---|
实例对象.getClass() | Y | Y |
类名.class | N | Y(我理解是需要的) |
Class.forName("全类名") | N | N |