SpringBoot内置工具类,告别瞎写工具类了( 四 )

执行方法:
// 执行方法Object invokeMethod(Method method, Object target)// 同上,提供方法参数Object invokeMethod(Method method, Object target, Object... args)// 取消 Java 权限检查 。以便后续执行该私有方法void makeAccessible(Method method)// 取消 Java 权限检查 。以便后续执行私有构造方法void makeAccessible(Constructor<?> ctor)获取字段:
// 在类中查找指定属性Field findField(Class<?> clazz, String name)// 同上,多提供了属性的类型Field findField(Class<?> clazz, String name, Class<?> type)// 是否为一个 "public static final" 属性boolean isPublicStaticFinal(Field field)设置字段:

查看代码 // 获取 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)
2.AopUtils
判断代理类型:
// 判断是不是 Spring 代理对象boolean isAopProxy()// 判断是不是 jdk 动态代理对象isJdkDynamicProxy()// 判断是不是 CGLIB 代理对象boolean isCglibProxy()获取被代理对象的 class:
// 获取被代理的目标 classClass<?> getTargetClass()3.AopContext
获取当前对象的代理对象:
Object currentProxy()【SpringBoot内置工具类,告别瞎写工具类了】

经验总结扩展阅读