1.每一个对象都具有的方法:getClass来获取。对象
实例:
Object obj = new Person();字符串
Class clazz1 = obj.getClass();get
弊端:it
必须有了对象之后才能够使用,否则会有错误: object is not an instance of declaring class,没有对象的实例。ast
2.经过每个数据类型(基本数据类型和引用数据类型)都有一个静态的属性class来获取。class
实例:扩展
Class clazz2 = Person.class; 配置
弊端:object
必须知道对象具体的类名,才能够使用数据类型
3.使用的Class类中的方法,静态的forName方法。指定什么类名,就获取什么类字节码文件对象,这种方式的扩展性最强,只要将类名的字符串传入便可。
实例:
tring classname = "cn.itcast.reflect.Person";// 来自配置文件
Class clazz = Class.forName(classname);// 此对象表明Person.class
方法三是最常使用到的获取Class对象的方法