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