《反射》————————获取类中的成员变量

本文探讨了Java反射中的`getField`和`getDeclaredField`方法,用于获取类中的成员变量。`getField`获取公共成员,而`getDeclaredField`则能获取包括私有在内的所有声明的成员。通过`setAccessible(true)`,可以进一步访问和修改私有成员,实现暴力反射。
摘要由CSDN通过智能技术生成

1 、通过Class类中的:

  getField(String propertyName)

  参数列表:属性的名称

  返回值类型:Field,表示一个成员变量对象,所属的类型

2 、Field类型:表示一个成员变量类型,每个对象都是一个具体的成员变量

  作用:获取成员变量的各种信息(修饰符、注解、名称);做各种数据类型的转换

  赋值:set(Object obj, Object value),用于给obj对象的,该成员变量,赋value值

暴力反射

1、通过Class类中:

  getDeclaredXxx方法:可以获取类中的所有声明的成员(属性、方法、内部类),私有的成员也可以获取到。

2、修改该对象的访问权限:

  成员变量、构造方法还是成员方法,都是AccessibleObject类型的子类,就具有判断是否可以访问,和设置是否可以访问的方法

  isAccessible():判断当前对象是否可以访问

  setAccessible(boolean flag):设定当前对象是否可以访问

3、一旦设定当前对象可以访问,私有的成员也可以被访问,被修改

Fied

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值