java之反射底层实现
反射使用场景无处不在,常用jdk动态代理
底层设计到的主要类,Method(方法),Field(属性值),constructor(构造器),modifier(修饰工具类)
第一种基本用法:
Class p1 = Class.forName("com.example.demo.Test");
System.out.println(p1.getName());
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
。
" class="reference-link">getDeclaredMethod 
其中privateGetDeclaredMethods
方法从缓存或JVM中获取该Class
中申明的方法列表,searchMethods
方法将从返回的方法列表里找到一个匹配名称和参数的方法对象。
后续在更新
还没有评论,来说两句吧...