java反射机制

在运行状态中,对于任意一个类都能知道这个类的所有属性和方法,对于任意一个对象,都能调用它的任意一个属性和方法,种种动态获取的信息以及动态调用对象的方法的功能称为java反射机制
反射获取类具有三种方式:
以获取people类型为例

  1. Classc1=Class.forName(“People”);
  2. Class c=People.class;
  3. People p=new People();
    Class c =p.getClass();
    反射机制的作用:
    1.反编译 .class---->.java
    2.通过反射机制访问java对象的属性方法,构造方法等
    获取私有构造方法: getDeclaredConstructor(类型.class)
    获取公有的构造方法:getConstructor(类型.class)
    获取一个方法getMethod(方法名,参数)
Class c=Class.forName("mingrisoft.RBNode");
 System.out.println("--获取所有的公用的构造方法---");
 Constructor[] con=c.getConstructors();
 for (Constructor constructor:con){
     System.out.println(constructor);
 }

如果要通过私有构造方法获取对象实例,要打开权限
setAccessible(true) 默认是false
Class c=People.class; Constructor con=c.getDeclareConstructor(); con.setAccessible(true); Object o=co.newInstance("lisi"); Method m=c.getMethod("cat"); method.invoke(o);
invoke方法的作用是用来执行实例中的方法,相当于".方法名"

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值