SpringBoot内置常用工具类

参考链接:https://mp.weixin.qq.com/s/Hxu6_zzk-Z4itNd7ZAzZ3w

1、 Assert 断言工具类:断言是一个逻辑判断,用于检查不应该发生的情况,通常用于数据合法性检查

    // 要求参数 object 必须为非空(Not Null),否则抛出异常,不予放行
    // 参数 message 参数用于定制异常信息。
    void notNull(Object object, String message)
    // 要求参数必须空(Null),否则抛出异常,不予『放行』。
    // 和 notNull() 方法断言规则相反
    void isNull(Object object, String message)
    // 要求参数必须为真(True),否则抛出异常,不予『放行』。
    void isTrue(boolean expression, String message)
    // 要求参数(List/Set)必须非空(Not Empty),否则抛出异常,不予放行
    void notEmpty(Collection collection, String message)
    // 要求参数(String)必须有长度(即,Not Empty),否则抛出异常,不予放行
    void hasLength(String text, String message)
    // 要求参数(String)必须有内容(即,Not Blank),否则抛出异常,不予放行
    void hasText(String text, String message)
    // 要求参数是指定类型的实例,否则抛出异常,不予放行
    void isInstanceOf(Class type, Object obj, String message)
    // 要求参数 `subType` 必须是参数 superType 的子类或实现类,否则抛出异常,不予放行
    void isAssignable(Class superType, Class subType, String message)

2、ReflectionUtils

  2.1、获取方法

    // 在类中查找指定方法
    Method findMethod(Class<?> clazz, String name) 
    // 同上,额外提供方法参数类型作查找条件
    Method findMethod(Class<?> clazz, String name, Class<?>... paramTypes) 
    // 获得类中所有方法,包括继承而来的
    Method[] getAllDeclaredMethods(Class<?> leafClass) 
    // 在类中查找指定构造方法
    Constructor<T> accessibleConstructor(Class<T> clazz, Class<?>... parameterTypes) 
    // 是否是 equals() 方法
    boolean isEqualsMethod(Method method) 
    // 是否是 hashCode() 方法 
    boolean isHashCodeMethod(Method method) 
    // 是否是 toString() 方法
    boolean isToStringMethod(Method method) 
    // 是否是从 Object 类继承而来的方法
    boolean isObjectMethod(Method method) 
    // 检查一个方法是否声明抛出指定异常
    boolean declaresException(Method method, Class<?> exceptionType) 

  2.2、执行方法

    // 在类中查找指定方法
    Method findMethod(Class<?> clazz, String name) 
    // 同上,额外提供方法参数类型作查找条件
    Method findMethod(Class<?> clazz, String name, Class<?>... paramTypes) 
    // 获得类中所有方法,包括继承而来的
    Method[] getAllDeclaredMethods(Class<?> leafClass) 
    // 在类中查找指定构造方法
    Constructor<T> accessibleConstructor(Class<T> clazz, Class<?>... parameterTypes) 
    // 是否是 equals() 方法
    boolean isEqualsMethod(Method method) 
    // 是否是 hashCode() 方法 
    boolean isHashCodeMethod(Method method) 
    // 是否是 toString() 方法
    boolean isToStringMethod(Method method) 
    // 是否是从 Object 类继承而来的方法
    boolean isObjectMethod(Method method) 
    // 检查一个方法是否声明抛出指定异常
    boolean declaresException(Method method, Class<?> exceptionType) 

  2.3、获取字段

    // 在类中查找指定属性
    Field findField(Class<?> clazz, String name) 
    // 同上,多提供了属性的类型
    Field findField(Class<?> clazz, String name, Class<?> type) 
    // 是否为一个 "public static final" 属性
    boolean isPublicStaticFinal(Field field) 

  2.4、设置字段

    // 获取 target 对象的 field 属性值
    Object getField(Field field, Object target) 
    // 设置 target 对象的 field 属性值,值为 value
    void setField(Field field, Object target, Object value) 
    // 同类对象属性对等赋值
    void shallowCopyFieldState(Object src, Object dest)
    // 取消 Java 的权限控制检查。以便后续读写该私有属性
    void makeAccessible(Field field) 
    // 对类的每个属性执行 callback
    void doWithFields(Class<?> clazz, ReflectionUtils.FieldCallback fc) 
    // 同上,多了个属性过滤功能。
    void doWithFields(Class<?> clazz, ReflectionUtils.FieldCallback fc, 
              ReflectionUtils.FieldFilter ff) 
    // 同上,但不包括继承而来的属性
    void doWithLocalFields(Class<?> clazz, ReflectionUtils.FieldCallback fc) 

 

 

 

posted @ 2022-05-08 15:03  西风51668  阅读(169)  评论(0编辑  收藏  举报