jOOR简介
文档
jOOR功能介绍
- 提供on()操作符对类名、Class、Object进行统一实例化为Reflect对象,后续所有的反射操作基于该Reflect对象。
- 有功能调用方式均被封装成返回Reflect对象的链式结构,在使用上使得代码更加简洁。
- 对方法的签名匹配封装了更完善的匹配规则,包括精确匹配exactMethod()、近似匹配similarMethod()【对函数参数的近似匹配(int -> Integer)】和基类搜索等。
- 调用私有方法的不需要显示调用setAccessible(),内部动态读取public标记自动适配。
- 更加简洁的实现了对象构造函数的反射调用create()方法。
- 函数的调用call()方法组合成了可以拼接在Reflect的对象后面的链式方法。
- 额外增加了高级操作符as(),它实现了类的代理访问以及POJO对象的get/set/is方法实现。
Reflect
Reflect.on 包裹一个类或者对象,表示在这个类或对象上进行反射,类的值可以使Class,也可以是完整的类名(包含包名信息)
Reflect.create 用来调用之前的类的构造方法,有两种重载,一种有参数,一种无参数
Reflect.call 方法调用,传入方法名和参数,如有返回值还需要调用get
Reflect.get 获取(field和method返回)值相关,会进行类型转换,常与call和field组合使用
Reflect.field 获取属性值相关,需要调用get获取该值
Reflect.set 设置属性相关。
public static Reflect on(String name);
public static Reflect on(String name, ClassLoader classLoader);
public static Reflect on(Class<?> clazz);
public static Reflect on(Object object);
public static <T extends AccessibleObject> T accessible(T accessible);
public <T> T get();
public Reflect field(String name);
public Map<String, Reflect> fields();
public Reflect set(String name, Object value);
public <T> T get(String name);
public Reflect call(String name);
public Reflect call(String name, Object... args);
public Reflect create();
public Reflect create(Object... args);
public Class<?> type();
public <P> P as(Class<P> proxyType);
引用:blog.csdn.net/zhangmiaopi…