java 反射获取属性值是什么?思路和步骤是什么样的

我们看下java反射获取属性的思路和步骤:

1、第一步肯定是获取类的字节码文件,

2、通过Class类的getDeclaredFields()方法获取类中所有属性的对象 (getFields():这个方法是获取类中公开的属性),

3、通过for循环 Field数组,调用getName()方法就可以获取属性的名称。

代码如下:

java 反射获取属性值是什么?思路和步骤是什么样的

注意:这里我们需要很清楚知道一个知识点,这个Field对象里面是什么:修饰符 + 变量类型 + 属性名称 这整个才是一个Field。例如 public String name;

我们接下来获取属性的修饰符:步骤跟获取属性名称一样的。1、获取对象的字节码文件。2、通过字节码文件获取对象所有的Field对象。3、通过Field的getType()方法获取变量的类型(这个类型是Class),在通过getName()方法获取变量类型的名称。

注意:getType()方法返回的是一个Class类型,应该变量的类型就是一个类。

代码如下:

java 反射获取属性值是什么?思路和步骤是什么样的

接下来我们获取属性的修饰符:1、获取类的字节码文件。2、通过Class对象的getDeclaredFields()方法获取所有的属性对象。2、循环获取每个属性对象,调用getModifiers()方法,获取修饰符的编号,在通过Modifier对象的toString("修饰符编号")方法获取修饰符。

注意点:getModifiers()方法返回的是int类型的数字,应为一个变量的修饰符可能有多个。比如:public static final String = "张三"; 获取到返回额数字后,在通过Modifier的toString()方法获取真正的修饰符。

代码如下:

java 反射获取属性值是什么?思路和步骤是什么样的

如果对象里面的属性是private私有的,那么我们需要添加一行代码 要打破封装:nameFiled.setAccessible(true); 这样设置完之后,在外部也是可以访问private的。

本站部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考。本站仅提供信息存储空间服务,如有侵权请联系我们删除。如若转载,请注明出处:https://sndnote.com/tougao/4538.html

(0)
飞翔的熊猫飞翔的熊猫

相关推荐