在上一篇我们学习了利用反射去分析一个类的能力,在这一篇我们将继续讲解利用反射去分析运行时的对象。
我们都知道对象是类的实例化,因此在创建一个对象的时候我们一般都会为这个对象所属类的相应字段设置相应的值,如上一篇创建的Persion类,当我们想实例化一个Persion对象的时候都会这样做:
Persion persion=new Persion(18,"张锡凯");
//这里我们就为这个类的age字段和name字段赋予了18和"张锡凯两个值
我们在这里就是要分析这个persion对象的age和name的实际值,方法如下:
Class cl=persion.getClass();
Filed f=cl.getDeclaredFiled("name");//根据类的字段名获取一个Filed对象
Object v=f.get(persion);//调用Filed对象的get()方法(参数为一个类的某一个实例对象),返回结果为这个对象的相应字段的实例值