反射简单总结

反射简单总结

  • 反射(Reflect)是在运行时动态访问类与对象的技术
  • 反射是JDK1.2版本后的高级特性, 隶属于java.lang.reflect
  • 大多数Java框架都基于反射实现参数配置, 动态注入等特性

反射的核心类

Class类

  • Class是JVM中代表"类和接口"的类
  • Class对象具体包含了某个特定类的结构信息
  • 通过Class对象可获取对应类的构造方法/方法/成员变量

Class核心方法

方法用途
Class.forName()静态方法, 用于获取指定Class对象
classObj.newinstance()通过默认构造方法创建新的对象
classObj.getConstructor()获得指定的public修饰构造方法Constructor对象
classObj.getMethod()获取指定的public修饰方法Method对象
classObj.getField()获取指定的public修饰成员变量Field对象

Constructor构造方法类

  • Constructor类是对Java类中构造方法的抽象
  • Constructor对象包含了具体类的某个具体构造方法的声明
  • 通过Constructor对象调用带参构造方法创建对象

Constructor类核心方法

方法用途
classObj.getConstructor()获取指定public修饰的构造方法对象
constructorObj.newInstance()通过对应的构造方法创建对象

Method方法类

  • Method对象指代某个类中方法的描述
  • Method对象使用classObj.getMethod()方法获取
  • 通过Method对象调用指定对象的对应方法
方法用途
classObj.getMethod()获取指定public修饰的方法对象
methodObj.invoke()调用指定对象的对应方法

Field成员变量类

  • Field对应某个具体类中的成员变量的声明
  • Field对象使用classObj.getField()方法获取
  • 通过Field对象可以在运行时为某对象成员变量赋值/取值

Field类核心方法

方法用途
classObj.getField()获取指 定public修饰的成员变量对象
fieldObj.set()为某对象指定 成员变量赋值
fieldObj.get()获取某对象指定成员变量数值

getDeclared系列方法

  • getDeclaredConstructor(s) | Method(s) | Field(s) 获取对应对象(所有)
  • getConstructor(s) | Method(s) | Field(s) 只能获取public对象
  • 访问非作用域内构造方法, 方法, 成员变量, 会抛出异常
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值