在反射操作中,也可以获取一个类中的全部属性,但是类中的属性包括两部分,即从父类继承的属性和本类定义的属性。因此,在获取类的属性时也有以下两种不同的方式。
(1)获取实现的接口或父类中的公共属性:public Field[] getFields throws SecurityException。
(2)获取本类中的全部属性:public Field[]getDeclaredFields throws SecurityException。
上述两种方法返回的都是Field数组,每一个Field对象表示类中的一个属性。如果要获取属性的详细信息,就需要调用Field类的方法。Field类的常用方法下所示。
(1)public int getModifiers()方法:得到本方法的修饰符。
(2)public String getName()方法:得到方法的名称。
(3)public boolean isAccessible()方法:判断此属性是否被外部访问。
(4)public void setAccessible(Boolean flag)throws SecurityException:设置一个属性是否可被外部访问。
(5)public String toString():返回此Field类的信息。
(6)public Object get(Object obj)throws lllegalArgument Exception,lllegalAccessException:得到一个对象中属性的具体内容。
(5)public void set(Object obj,Object value)throws lllegalArgument Exception,lllegalAccessException:设置指定对象中属性的具体内容。