别再自己瞎写工具类了,SpringBoot 内置工具类应有尽有,建议收藏( 三 )

2. 执行方法
// 执行方法Object invokeMethod(Method method, Object target)// 同上 , 提供方法参数Object invokeMethod(Method method, Object target, Object... args)// 取消 JAVA 权限检查 。以便后续执行该私有方法void makeAccessible(Method method)// 取消 Java 权限检查 。以便后续执行私有构造方法void makeAccessible(Constructor<?> ctor)3. 获取字段
// 在类中查找指定属性Field findField(Class<?> clazz, String name)// 同上 , 多提供了属性的类型Field findField(Class<?> clazz, String name, Class<?> type)// 是否为一个 "public static final" 属性boolean isPublicStaticFinal(Field field)4. 设置字段
// 获取 target 对象的 field 属性值Object getField(Field field, Object target)// 设置 target 对象的 field 属性值 , 值为 valuevoid setField(Field field, Object target, Object value)// 同类对象属性对等赋值void shallowCopyFieldState(Object src, Object dest)// 取消 Java 的权限控制检查 。以便后续读写该私有属性void makeAccessible(Field field)// 对类的每个属性执行 callbackvoid doWithFields(Class<?> clazz, ReflectionUtils.FieldCallback fc)// 同上 , 多了个属性过滤功能 。void doWithFields(Class<?> clazz, ReflectionUtils.FieldCallback fc,ReflectionUtils.FieldFilter ff)// 同上 , 但不包括继承而来的属性void doWithLocalFields(Class<?> clazz, ReflectionUtils.FieldCallback fc) 
AopUtils1. 判断代理类型
// 判断是不是 Spring 代理对象boolean isAopProxy()// 判断是不是 jdk 动态代理对象isJdkDynamicProxy()// 判断是不是 CGLIB 代理对象boolean isCglibProxy()2. 获取被代理对象的 class
// 获取被代理的目标 classClass<?> getTargetClass()AopContext1. 获取当前对象的代理对象
Object currentProxy()



推荐阅读