怎么在java中利用反射访问成员变量的值

怎么在java中利用反射访问成员变量的值?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

10余年的安顺网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整安顺建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“安顺网站设计”,“安顺网站推广”以来,每个客户项目都认真落实执行。

一 代码

import java.lang.reflect.*;
class Person
{
  private String name;
  private int age;
  public String toString()
  {
    return "Person[name:" + name +
    " , age:" + age + " ]";
  }
}
public class FieldTest
{
  public static void main(String[] args)
    throws Exception
  {
    // 创建一个Person对象
    Person p = new Person();
    // 获取Person类对应的Class对象
    Class personClazz = Person.class;
    // 获取Person的名为name的成员变量
    // 使用getDeclaredField()方法表明可获取各种访问控制符的成员变量
    Field nameField = personClazz.getDeclaredField("name");
    // 设置通过反射访问该成员变量时取消访问权限检查
    nameField.setAccessible(true);
    // 调用set()方法为p对象的name成员变量设置值
    nameField.set(p , "Yeeku.H.Lee");
    // 获取Person类名为age的成员变量
    Field ageField = personClazz.getDeclaredField("age");
    // 设置通过反射访问该成员变量时取消访问权限检查
    ageField.setAccessible(true);
    // 调用setInt()方法为p对象的age成员变量设置值
    ageField.setInt(p , 30);
    System.out.println(p);
  }
}

二 运行

E:\Java\疯狂java讲义\codes\18\18.4>java FieldTest
Person[name:Yeeku.H.Lee , age:30 ]

看完上述内容,你们掌握怎么在java中利用反射访问成员变量的值的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


网站名称:怎么在java中利用反射访问成员变量的值
文章分享:http://ybzwz.com/article/gipcge.html