java之反射底层实现

反射使用场景无处不在,常用jdk动态代理
底层设计到的主要类,Method(方法),Field(属性值),constructor(构造器),modifier(修饰工具类)  

第一种基本用法:

Class p1 = Class.forName("com.example.demo.Test");
System.out.println(p1.getName());
Constructor<Field> constructor1 = p1.getConstructor();
Method m1 = p1.getMethod("test");    
Field[] fields = p1.getFields();
for (Field f:fields){
    System.out.println(f.getName());
}

或者

Class p1 = Class.forName("com.example.demo.Test");
System.out.println(p1.getName());
Method m1 = p1.getDeclaredMethod("test");
Field[] fields = p1.getFields();
for (Field f:fields){
    System.out.println(f.getName());
}
 

Method获取

调用Class类的getDeclaredMethod可以获取指定方法名和参数的方法对象Method

getDeclaredMethod

其中privateGetDeclaredMethods方法从缓存或JVM中获取该Class中申明的方法列表,searchMethods方法将从返回的方法列表里找到一个匹配名称和参数的方法对象。


后续在更新
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值