反射机制的概述和字节码对象的获取,通过反射获取构造方法并使用;通过反射获取成员变量并使用;通过反射获取私有成员变量并使用;通过反射获取成员方法并使用

1反射机制的概述和字节码对象的获取方式:

在运行时,我们可以获取任意一个类的所有方法和属性

在运行时,让我们调用任意一个对象的所有方法和属性

反射的前提:要获取类的对象(Class对象)字节码对象

第一种:创建对象,对象.getClass();获取

第二种:可以通过类名获取字节码对象:class  cla = student.class

第三种:Static class = forName(String  className);通过类的全名获得字节码对象,

Class.forName(类地址的全名称)

 

2通过反射获取构造方法并使用:

获取构造可以创建对象;

字节码对象.getConstructors();获取所有的public修饰的构造方法  返回的是数组

 字节码对象.getConstructor();不给参数是获得无参构造

无参构造。newInstance();  ,输出的是成员变量

带参构造。newInstance(给出参数就行);

字节码对象。getDeclaredConstructor(参数的类型1,参数的类型2获取成员变量带参的构造方法

字节码对象。newInstance();获取构造对象

3通过反射获取成员变量并使用:

Fileld【】 fs = 字节码对象。getFields();获取所有的public修饰的成员变量

Filed  fs2 = 字节码对象。getFieldString);获取public修饰的成员变量(根据字段的名称获取公共的成员变量对象)

 

Filed  fs3 = 字节码对象。getDeclaredFields();获取所有的成员变量

Filed 的方法get(对象)  通过对象获取成员变量的值

 set(对象,修改的值); 通过成员变量对象,修改为指定的值

4 通过反射获取私有成员变量并使用:

字段对象(私有成员变量).setAccessibletrue);//ture)就是设置反射时取消Java的访问检查,(暴力访问)

 

5通过反射获取成员方法并使用:

getMethod(类的全名,方法对应的参数名)。没有参数时,方法对应的参数不写就行

Object  obj = Invoke(对象,参数名);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值