1. 程式人生 > 其它 >SpringBoot內建常用工具類

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)