java使用反射访问成员变量的值示例

 更新时间:2019年07月12日 11:45:57   作者:cakincqm  
这篇文章主要介绍了java使用反射访问成员变量的值,结合实例形式分析了java基于反射机制操作类成员变量相关实现技巧,需要的朋友可以参考下

本文实例讲述了java使用反射访问成员变量的值。分享给大家供大家参考,具体如下:

一 代码

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<Person> 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面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

相关文章

  • MyBatis handleResultSet结果集解析过程示例

    MyBatis handleResultSet结果集解析过程示例

    这篇文章主要为大家介绍了MyBatis handleResultSet结果集解析过程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • Spring boot工具类静态属性注入及多环境配置详解

    Spring boot工具类静态属性注入及多环境配置详解

    这篇文章主要为大家详细介绍了Spring boot工具类静态属性注入,及多环境配置详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • java如何消除太多的if else判断示例代码

    java如何消除太多的if else判断示例代码

    这篇文章主要介绍了java如何消除太多的if else判断,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • Java面试重点中的重点之Elasticsearch核心原理

    Java面试重点中的重点之Elasticsearch核心原理

    ElasticSearch是一个基于Lucene的搜索引擎,是用Java语言开发的,能够达到实时搜索,稳定,可靠,快速,安装使用方便,作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎,是最受欢迎的企业搜索引擎
    2022-01-01
  • JAVA对象clone方法代码实例解析

    JAVA对象clone方法代码实例解析

    这篇文章主要介绍了JAVA对象clone方法代码实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Java使用正则表达式检索、替换String中特定字符和正则表达式的一切

    Java使用正则表达式检索、替换String中特定字符和正则表达式的一切

    这篇文章主要给大家介绍了关于Java使用正则表达式检索、替换String中特定字符和正则表达式的一切,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • spring boot + mybatis如何实现数据库的读写分离

    spring boot + mybatis如何实现数据库的读写分离

    这篇文章主要给大家介绍了关于spring boot + mybatis如何实现数据库的读写分离的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用spring boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • Spring中的@Scheduled源码解析

    Spring中的@Scheduled源码解析

    这篇文章主要介绍了Spring中的@Scheduled源码解析,定时任务调度的基础是ScheduledAnnotationBeanPostProcessor类,这是一个实现了BeanPostProcessor接口的后置处理器,需要的朋友可以参考下
    2023-09-09
  • Java用编码检测代理ip是否有效

    Java用编码检测代理ip是否有效

    这篇文章主要为大家详细介绍了Java如何使用编码检测代理ip是否有效,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-12-12
  • Java指令重排序在多线程环境下的处理方法

    Java指令重排序在多线程环境下的处理方法

    指令重排在单线程环境下有利于提高程序的执行效率,不会对程序产生负面影响,本文对多线程指令重排问题进行复原,并针对指令重排给出相应的解决方案,需要的朋友参考下吧
    2022-04-04

最新评论