反射的知识

一、定义
是Java的一个动态相关机制:Reflection

二、发生时期
发生在程序运行期间

三、反射机制可以实现的功能
①在运行时判断任意一个对象所属的类;
②在运行时构造任意一个类的对象;
③在运行时判断任意一个类所具有的成员变量和方法;
④在运行时调用任意一个对象的方法;
⑤生成动态代理

四、反射的源头
1、Class类型的对象
在一个类型加载到内存中就存在一个属于表示当前类型的Class对象
2、Class
类类实例表示正在运行的Java应用程序中的类和接口
3、获取反射源头的方式
1.类名.class
Class cls1 = String.class;
2.Class.forName(“权限定名”) -->推荐
Class cls2 = Class.forName(“java.lang.String”);
3.对象.getClass()
Class cls3 = “”.getClass();

四、通过反射创建对象
1、Class ->newInstance()
默认调用空构造为对象初始化信息
不推荐
2、Constructor->newInstance() 创建对象
获取某一个类中构造器
(1)构造器getConstructor返回一个构造器对象
该对象反映此类对象所表示的类的指定公共构造函数。
(2)构造器 getConstructors() 返回一个包含构造器对象的数组。
构造器对象反映了此类对象所表示的类的所有公共构造函数
(3)构造器getDeclaredConstructor 返回一个构造器对象
该对象反映此类对象所表示的类或接口的指定构造函数。
(4)构造器 getDeclaredConstructors() 返回构造器对象的数组
构造器对象反映由此类对象表示的类声明的所有构造函数。
私有的构造器先忽略权限再次使用
3、打开权限
con.setAccessible(true)
调用Constructor类提供的newInstance方法,创建对象的时候调用当前构造器初始化信息

五、通过反射操作成员
1、操作方法
获取方法
(1)方法 getMethod 返回方法对象
该对象反映此类对象表示的类或接口的指定公共成员方法。
(2)方法 getMethods() 返回一个包含方法对象的数组
方法对象反映此类对象所表示的类或接口的所有公共方法
(3)方法 getDeclaredMethod 返回方法对象
该对象反映此类对象表示的类或接口的指定声明方法。
(4)方法getDeclaredMethods() 返回一个包含方法对象的数组
方法对象反映此类对象表示的类或接口的所有已声明方法
调用方法
Object invoke 在具有指定参数的指定对象上调用此方法对象表示的基础方法
2、操作属性
获取属性
(1)字段 getField(String name) 返回字段对象
该对象反映此类对象表示的类或接口的指定公共成员字段。
(2)字段 getFields() 返回一个包含字段对象的数组
字段对象反映此类对象所表示的类或接口的所有可访问公共字段。
(3)字段 getDeclaredField(String name) 返回字段对象
该对象反映此类对象表示的类或接口的指定声明字段。
(4)字段 getDeclaredFields() 返回字段对象的数组
字段对象反映由此类对象表示的类或接口声明的所有字段
3、获取属性值
Object get(Object obj) 返回指定对象上此字段表示的字段的值
4、设置属性值
void set(Object obj, Object value) 将指定对象参数上此字段对象表示的字段设置为指定的新值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值