Class Assert

java.lang.Object
org.miaixz.bus.core.lang.Assert

public class Assert extends Object
断言 断言某些对象或值是否符合规定,否则抛出异常。经常用于做变量检查
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static double
    checkBetween(double value, double min, double max)
    检查值是否在指定范围内
    static double
    checkBetween(double value, double min, double max, String errorMsgTemplate, Object... params)
    检查值是否在指定范围内
    static <X extends Throwable>
    double
    checkBetween(double value, double min, double max, Supplier<? extends X> errorSupplier)
    检查值是否在指定范围内
    static int
    checkBetween(int value, int min, int max)
    检查值是否在指定范围内
    static int
    checkBetween(int value, int min, int max, String errorMsgTemplate, Object... params)
    检查值是否在指定范围内
    static <X extends Throwable>
    int
    checkBetween(int value, int min, int max, Supplier<? extends X> errorSupplier)
    检查值是否在指定范围内
    static long
    checkBetween(long value, long min, long max)
    检查值是否在指定范围内
    static long
    checkBetween(long value, long min, long max, String errorMsgTemplate, Object... params)
    检查值是否在指定范围内
    static <X extends Throwable>
    long
    checkBetween(long value, long min, long max, Supplier<? extends X> errorSupplier)
    检查值是否在指定范围内
    static Number
    checkBetween(Number value, Number min, Number max)
    检查值是否在指定范围内
    static int
    checkIndex(int index, int size)
    检查下标(数组、集合、字符串)是否符合要求,下标必须满足:
    static int
    checkIndex(int index, int size, String errorMsgTemplate, Object... params)
    检查下标(数组、集合、字符串)是否符合要求,下标必须满足:
    static void
    equals(Object obj1, Object obj2)
    断言两个对象是否相等,如果两个对象不相等 抛出IllegalArgumentException 异常
    static void
    equals(Object obj1, Object obj2, String errorMsgTemplate, Object... params)
    断言两个对象是否相等,如果两个对象不相等 抛出IllegalArgumentException 异常
    static <X extends Throwable>
    void
    equals(Object obj1, Object obj2, Supplier<X> errorSupplier)
    断言两个对象是否相等,如果两个对象不相等,抛出指定类型异常,并使用指定的函数获取错误信息返回
    static void
    isAssignable(Class<?> superType, Class<?> subType)
    断言 superType.isAssignableFrom(subType) 是否为 true.
    static void
    isAssignable(Class<?> superType, Class<?> subType, String errorMsgTemplate, Object... params)
    断言 superType.isAssignableFrom(subType) 是否为 true.
    static void
    isFalse(boolean expression)
    断言是否为假,如果为 true 抛出 IllegalArgumentException 异常
    static void
    isFalse(boolean expression, String errorMsgTemplate, Object... params)
    断言是否为假,如果为 true 抛出 IllegalArgumentException 异常
    static <X extends Throwable>
    void
    isFalse(boolean expression, Supplier<X> errorSupplier)
    断言是否为假,如果为 true 抛出指定类型异常 并使用指定的函数获取错误信息返回
    static <T> T
    isInstanceOf(Class<?> type, T obj)
    断言给定对象是否是给定类的实例
    static <T> T
    isInstanceOf(Class<?> type, T obj, String errorMsgTemplate, Object... params)
    断言给定对象是否是给定类的实例
    static void
    isNull(Object object)
    断言对象是否为null ,如果不为null 抛出IllegalArgumentException 异常
    static void
    isNull(Object object, String errorMsgTemplate, Object... params)
    断言对象是否为null ,如果不为null 抛出IllegalArgumentException 异常
    static <X extends Throwable>
    void
    isNull(Object object, Supplier<X> errorSupplier)
    断言对象是否为null ,如果不为null 抛出指定类型异常 并使用指定的函数获取错误信息返回
    static void
    isTrue(boolean expression)
    断言是否为真,如果为 false 抛出 IllegalArgumentException 异常
    static void
    isTrue(boolean expression, String errorMsgTemplate, Object... params)
    断言是否为真,如果为 false 抛出 IllegalArgumentException 异常
    static <X extends Throwable>
    void
    isTrue(boolean expression, Supplier<? extends X> supplier)
    断言是否为真,如果为 false 抛出给定的异常
    static <T> T[]
    noNullElements(T[] array)
    断言给定数组是否不包含null元素,如果数组为空或 null将被认为不包含
    static <T> T[]
    noNullElements(T[] array, String errorMsgTemplate, Object... params)
    断言给定数组是否不包含null元素,如果数组为空或 null将被认为不包含
    static <T, X extends Throwable>
    T[]
    noNullElements(T[] array, Supplier<X> errorSupplier)
    断言给定数组是否不包含null元素,如果数组为空或 null将被认为不包含 并使用指定的函数获取错误信息返回
    static <T extends CharSequence>
    T
    notBlank(T text)
    检查给定字符串是否为空白(null、空串或只包含空白符),为空抛出 IllegalArgumentException
    static <T extends CharSequence>
    T
    notBlank(T text, String errorMsgTemplate, Object... params)
    检查给定字符串是否为空白(null、空串或只包含空白符),为空抛出 IllegalArgumentException
    static <T extends CharSequence, X extends Throwable>
    T
    notBlank(T text, Supplier<X> errorMsgSupplier)
    检查给定字符串是否为空白(null、空串或只包含空白符),为空抛出自定义异常。 并使用指定的函数获取错误信息返回
    static <T extends CharSequence, X extends Throwable>
    T
    notContain(CharSequence textToSearch, T substring, Supplier<X> errorSupplier)
    断言给定字符串是否不被另一个字符串包含(即是否为子串),并使用指定的函数获取错误信息返回 如果非子串,返回子串,如果是子串,则抛出IllegalArgumentException异常。
    static String
    notContain(String textToSearch, String subString)
    断言给定字符串是否不被另一个字符串包含(即是否为子串),即subString是否不是textToSearch的子串。 如果非子串,返回子串,如果是子串,则抛出IllegalArgumentException异常。
    static String
    notContain(String textToSearch, String subString, String errorMsgTemplate, Object... params)
    断言给定字符串是否不被另一个字符串包含(即是否为子串) 如果非子串,返回子串,如果是子串,则抛出IllegalArgumentException异常。
    static <T extends CharSequence>
    T
    notEmpty(T text)
    检查给定字符串是否为空,为空抛出 IllegalArgumentException
    static <T> T[]
    notEmpty(T[] array)
    断言给定数组是否包含元素,数组必须不为 null 且至少包含一个元素
    static <T> T[]
    notEmpty(T[] array, String errorMsgTemplate, Object... params)
    断言给定数组是否包含元素,数组必须不为 null 且至少包含一个元素
    static <T, X extends Throwable>
    T[]
    notEmpty(T[] array, Supplier<X> errorSupplier)
    断言给定数组是否包含元素,数组必须不为 null 且至少包含一个元素 并使用指定的函数获取错误信息返回
    static <T extends CharSequence>
    T
    notEmpty(T text, String errorMsgTemplate, Object... params)
    检查给定字符串是否为空,为空抛出 IllegalArgumentException
    static <T extends CharSequence, X extends Throwable>
    T
    notEmpty(T text, Supplier<X> errorSupplier)
    检查给定字符串是否为空,为空抛出自定义异常,并使用指定的函数获取错误信息返回。
    static void
    notEquals(Object obj1, Object obj2)
    断言两个对象是否不相等,如果两个对象相等 抛出IllegalArgumentException 异常
    static void
    notEquals(Object obj1, Object obj2, String errorMsgTemplate, Object... params)
    断言两个对象是否不相等,如果两个对象相等 抛出IllegalArgumentException 异常
    static <X extends Throwable>
    void
    notEquals(Object obj1, Object obj2, Supplier<X> errorSupplier)
    断言两个对象是否不相等,如果两个对象相等,抛出指定类型异常,并使用指定的函数获取错误信息返回
    static <T> T
    notNull(T object)
    断言对象是否不为null ,如果为null 抛出IllegalArgumentException 异常
    static <T> T
    notNull(T object, String errorMsgTemplate, Object... params)
    断言对象是否不为null ,如果为null 抛出IllegalArgumentException 异常 Assert that an object is not null .
    static <T, X extends Throwable>
    T
    notNull(T object, Supplier<X> errorSupplier)
    断言对象是否不为null ,如果为null 抛出指定类型异常 并使用指定的函数获取错误信息返回
    static void
    state(boolean expression)
    检查boolean表达式,当检查结果为false时抛出 IllegalStateException
    static void
    state(boolean expression, String errorMsgTemplate, Object... params)
    检查boolean表达式,当检查结果为false时抛出 IllegalStateException
    static void
    state(boolean expression, Supplier<String> errorMsgSupplier)
    检查boolean表达式,当检查结果为false时抛出 IllegalStateException。 并使用指定的函数获取错误信息返回

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Assert

      public Assert()
  • Method Details

    • isTrue

      public static <X extends Throwable> void isTrue(boolean expression, Supplier<? extends X> supplier) throws X
      断言是否为真,如果为 false 抛出给定的异常
       Assert.isTrue(i > 0, IllegalArgumentException::new);
       
      Type Parameters:
      X - 异常类型
      Parameters:
      expression - 布尔值
      supplier - 指定断言不通过时抛出的异常
      Throws:
      X - if expression is false
    • isTrue

      public static void isTrue(boolean expression, String errorMsgTemplate, Object... params) throws IllegalArgumentException
      断言是否为真,如果为 false 抛出 IllegalArgumentException 异常
       Assert.isTrue(i > 0, "The value must be greater than zero");
       
      Parameters:
      expression - 布尔值
      errorMsgTemplate - 错误抛出异常附带的消息模板,变量用{}代替
      params - 参数列表
      Throws:
      IllegalArgumentException - if expression is false
    • isTrue

      public static void isTrue(boolean expression) throws IllegalArgumentException
      断言是否为真,如果为 false 抛出 IllegalArgumentException 异常
       Assert.isTrue(i > 0);
       
      Parameters:
      expression - 布尔值
      Throws:
      IllegalArgumentException - if expression is false
    • isFalse

      public static <X extends Throwable> void isFalse(boolean expression, Supplier<X> errorSupplier) throws X
      断言是否为假,如果为 true 抛出指定类型异常 并使用指定的函数获取错误信息返回
        Assert.isFalse(i > 0, ()->{
            // to query relation message
            return new IllegalArgumentException("relation message to return");
        });
       
      Type Parameters:
      X - 异常类型
      Parameters:
      expression - 布尔值
      errorSupplier - 指定断言不通过时抛出的异常
      Throws:
      X - if expression is false
    • isFalse

      public static void isFalse(boolean expression, String errorMsgTemplate, Object... params) throws IllegalArgumentException
      断言是否为假,如果为 true 抛出 IllegalArgumentException 异常
       Assert.isFalse(i < 0, "The value must not be negative");
       
      Parameters:
      expression - 布尔值
      errorMsgTemplate - 错误抛出异常附带的消息模板,变量用{}代替
      params - 参数列表
      Throws:
      IllegalArgumentException - if expression is false
    • isFalse

      public static void isFalse(boolean expression) throws IllegalArgumentException
      断言是否为假,如果为 true 抛出 IllegalArgumentException 异常
       Assert.isFalse(i < 0);
       
      Parameters:
      expression - 布尔值
      Throws:
      IllegalArgumentException - if expression is false
    • isNull

      public static <X extends Throwable> void isNull(Object object, Supplier<X> errorSupplier) throws X
      断言对象是否为null ,如果不为null 抛出指定类型异常 并使用指定的函数获取错误信息返回
       Assert.isNull(value, ()->{
            // to query relation message
            return new IllegalArgumentException("relation message to return");
        });
       
      Type Parameters:
      X - 异常类型
      Parameters:
      object - 被检查的对象
      errorSupplier - 错误抛出异常附带的消息生产接口
      Throws:
      X - if the object is not null
    • isNull

      public static void isNull(Object object, String errorMsgTemplate, Object... params) throws IllegalArgumentException
      断言对象是否为null ,如果不为null 抛出IllegalArgumentException 异常
       Assert.isNull(value, "The value must be null");
       
      Parameters:
      object - 被检查的对象
      errorMsgTemplate - 消息模板,变量使用{}表示
      params - 参数列表
      Throws:
      IllegalArgumentException - if the object is not null
    • isNull

      public static void isNull(Object object) throws IllegalArgumentException
      断言对象是否为null ,如果不为null 抛出IllegalArgumentException 异常
       Assert.isNull(value);
       
      Parameters:
      object - 被检查对象
      Throws:
      IllegalArgumentException - if the object is not null
    • notNull

      public static <T, X extends Throwable> T notNull(T object, Supplier<X> errorSupplier) throws X
      断言对象是否不为null ,如果为null 抛出指定类型异常 并使用指定的函数获取错误信息返回
       Assert.notNull(clazz, ()->{
            // to query relation message
            return new IllegalArgumentException("relation message to return");
        });
       
      Type Parameters:
      T - 被检查对象泛型类型
      X - 异常类型
      Parameters:
      object - 被检查对象
      errorSupplier - 错误抛出异常附带的消息生产接口
      Returns:
      被检查后的对象
      Throws:
      X - if the object is null
    • notNull

      public static <T> T notNull(T object, String errorMsgTemplate, Object... params) throws IllegalArgumentException
      断言对象是否不为null ,如果为null 抛出IllegalArgumentException 异常 Assert that an object is not null .
       Assert.notNull(clazz, "The class must not be null");
       
      Type Parameters:
      T - 被检查对象泛型类型
      Parameters:
      object - 被检查对象
      errorMsgTemplate - 错误消息模板,变量使用{}表示
      params - 参数
      Returns:
      被检查后的对象
      Throws:
      IllegalArgumentException - if the object is null
    • notNull

      public static <T> T notNull(T object) throws IllegalArgumentException
      断言对象是否不为null ,如果为null 抛出IllegalArgumentException 异常
       Assert.notNull(clazz);
       
      Type Parameters:
      T - 被检查对象类型
      Parameters:
      object - 被检查对象
      Returns:
      非空对象
      Throws:
      IllegalArgumentException - if the object is null
    • notEmpty

      public static <T extends CharSequence, X extends Throwable> T notEmpty(T text, Supplier<X> errorSupplier) throws X
      检查给定字符串是否为空,为空抛出自定义异常,并使用指定的函数获取错误信息返回。
       Assert.notEmpty(name, ()->{
            // to query relation message
            return new IllegalArgumentException("relation message to return");
        });
       
      Type Parameters:
      T - 字符串类型
      X - 异常类型
      Parameters:
      text - 被检查字符串
      errorSupplier - 错误抛出异常附带的消息生产接口
      Returns:
      非空字符串
      Throws:
      X - 被检查字符串为空抛出此异常
      See Also:
    • notEmpty

      public static <T extends CharSequence> T notEmpty(T text, String errorMsgTemplate, Object... params) throws IllegalArgumentException
      检查给定字符串是否为空,为空抛出 IllegalArgumentException
       Assert.notEmpty(name, "Name must not be empty");
       
      Type Parameters:
      T - 字符串类型
      Parameters:
      text - 被检查字符串
      errorMsgTemplate - 错误消息模板,变量使用{}表示
      params - 参数
      Returns:
      非空字符串
      Throws:
      IllegalArgumentException - 被检查字符串为空
      See Also:
    • notEmpty

      public static <T extends CharSequence> T notEmpty(T text) throws IllegalArgumentException
      检查给定字符串是否为空,为空抛出 IllegalArgumentException
       Assert.notEmpty(name);
       
      Type Parameters:
      T - 字符串类型
      Parameters:
      text - 被检查字符串
      Returns:
      被检查的字符串
      Throws:
      IllegalArgumentException - 被检查字符串为空
      See Also:
    • notBlank

      public static <T extends CharSequence, X extends Throwable> T notBlank(T text, Supplier<X> errorMsgSupplier) throws X
      检查给定字符串是否为空白(null、空串或只包含空白符),为空抛出自定义异常。 并使用指定的函数获取错误信息返回
       Assert.notBlank(name, ()->{
            // to query relation message
            return new IllegalArgumentException("relation message to return");
        });
       
      Type Parameters:
      T - 字符串类型
      X - 异常类型
      Parameters:
      text - 被检查字符串
      errorMsgSupplier - 错误抛出异常附带的消息生产接口
      Returns:
      非空字符串
      Throws:
      X - 被检查字符串为空白
      See Also:
    • notBlank

      public static <T extends CharSequence> T notBlank(T text, String errorMsgTemplate, Object... params) throws IllegalArgumentException
      检查给定字符串是否为空白(null、空串或只包含空白符),为空抛出 IllegalArgumentException
       Assert.notBlank(name, "Name must not be blank");
       
      Type Parameters:
      T - 字符串类型
      Parameters:
      text - 被检查字符串
      errorMsgTemplate - 错误消息模板,变量使用{}表示
      params - 参数
      Returns:
      非空字符串
      Throws:
      IllegalArgumentException - 被检查字符串为空白
      See Also:
    • notBlank

      public static <T extends CharSequence> T notBlank(T text) throws IllegalArgumentException
      检查给定字符串是否为空白(null、空串或只包含空白符),为空抛出 IllegalArgumentException
       Assert.notBlank(name);
       
      Type Parameters:
      T - 字符串类型
      Parameters:
      text - 被检查字符串
      Returns:
      非空字符串
      Throws:
      IllegalArgumentException - 被检查字符串为空白
      See Also:
    • notContain

      public static <T extends CharSequence, X extends Throwable> T notContain(CharSequence textToSearch, T substring, Supplier<X> errorSupplier) throws X
      断言给定字符串是否不被另一个字符串包含(即是否为子串),并使用指定的函数获取错误信息返回 如果非子串,返回子串,如果是子串,则抛出IllegalArgumentException异常。
       Assert.notContain(name, "rod", ()->{
            // to query relation message
            return new IllegalArgumentException("relation message to return ");
        });
       
      Type Parameters:
      T - 字符串类型
      X - 异常类型
      Parameters:
      textToSearch - 被搜索的字符串
      substring - 被检查的子串
      errorSupplier - 错误抛出异常附带的消息生产接口
      Returns:
      被检查的子串
      Throws:
      X - 非子串抛出异常
      See Also:
    • notContain

      public static String notContain(String textToSearch, String subString, String errorMsgTemplate, Object... params) throws IllegalArgumentException
      断言给定字符串是否不被另一个字符串包含(即是否为子串) 如果非子串,返回子串,如果是子串,则抛出IllegalArgumentException异常。
       Assert.notContain(name, "rod", "Name must not contain 'rod'");
       
      Parameters:
      textToSearch - 被搜索的字符串
      subString - 被检查的子串
      errorMsgTemplate - 异常时的消息模板
      params - 参数列表
      Returns:
      被检查的子串
      Throws:
      IllegalArgumentException - 非子串抛出异常
    • notContain

      public static String notContain(String textToSearch, String subString) throws IllegalArgumentException
      断言给定字符串是否不被另一个字符串包含(即是否为子串),即subString是否不是textToSearch的子串。 如果非子串,返回子串,如果是子串,则抛出IllegalArgumentException异常。
       Assert.notContain(name, "rod");
       
      Parameters:
      textToSearch - 被搜索的字符串
      subString - 被检查的子串
      Returns:
      被检查的子串
      Throws:
      IllegalArgumentException - 非子串抛出异常
    • notEmpty

      public static <T, X extends Throwable> T[] notEmpty(T[] array, Supplier<X> errorSupplier) throws X
      断言给定数组是否包含元素,数组必须不为 null 且至少包含一个元素 并使用指定的函数获取错误信息返回
       Assert.notEmpty(array, ()->{
            // to query relation message
            return new IllegalArgumentException("relation message to return");
        });
       
      Type Parameters:
      T - 数组元素类型
      X - 异常类型
      Parameters:
      array - 被检查的数组
      errorSupplier - 错误抛出异常附带的消息生产接口
      Returns:
      被检查的数组
      Throws:
      X - if the object array is null or has no elements
      See Also:
    • notEmpty

      public static <T> T[] notEmpty(T[] array, String errorMsgTemplate, Object... params) throws IllegalArgumentException
      断言给定数组是否包含元素,数组必须不为 null 且至少包含一个元素
       Assert.notEmpty(array, "The array must have elements");
       
      Type Parameters:
      T - 数组元素类型
      Parameters:
      array - 被检查的数组
      errorMsgTemplate - 异常时的消息模板
      params - 参数列表
      Returns:
      被检查的数组
      Throws:
      IllegalArgumentException - if the object array is null or has no elements
    • notEmpty

      public static <T> T[] notEmpty(T[] array) throws IllegalArgumentException
      断言给定数组是否包含元素,数组必须不为 null 且至少包含一个元素
       Assert.notEmpty(array, "The array must have elements");
       
      Type Parameters:
      T - 数组元素类型
      Parameters:
      array - 被检查的数组
      Returns:
      被检查的数组
      Throws:
      IllegalArgumentException - if the object array is null or has no elements
    • noNullElements

      public static <T, X extends Throwable> T[] noNullElements(T[] array, Supplier<X> errorSupplier) throws X
      断言给定数组是否不包含null元素,如果数组为空或 null将被认为不包含 并使用指定的函数获取错误信息返回
       Assert.noNullElements(array, ()->{
            // to query relation message
            return new IllegalArgumentException("relation message to return ");
        });
       
      Type Parameters:
      T - 数组元素类型
      X - 异常类型
      Parameters:
      array - 被检查的数组
      errorSupplier - 错误抛出异常附带的消息生产接口
      Returns:
      被检查的数组
      Throws:
      X - if the object array contains a null element
      See Also:
    • noNullElements

      public static <T> T[] noNullElements(T[] array, String errorMsgTemplate, Object... params) throws IllegalArgumentException
      断言给定数组是否不包含null元素,如果数组为空或 null将被认为不包含
       Assert.noNullElements(array, "The array must not have null elements");
       
      Type Parameters:
      T - 数组元素类型
      Parameters:
      array - 被检查的数组
      errorMsgTemplate - 异常时的消息模板
      params - 参数列表
      Returns:
      被检查的数组
      Throws:
      IllegalArgumentException - if the object array contains a null element
    • noNullElements

      public static <T> T[] noNullElements(T[] array) throws IllegalArgumentException
      断言给定数组是否不包含null元素,如果数组为空或 null将被认为不包含
       Assert.noNullElements(array);
       
      Type Parameters:
      T - 数组元素类型
      Parameters:
      array - 被检查的数组
      Returns:
      被检查的数组
      Throws:
      IllegalArgumentException - if the object array contains a null element
    • notEmpty

      public static <E, T extends Iterable<E>, X extends Throwable> T notEmpty(T collection, Supplier<X> errorSupplier) throws X
      断言给定集合非空 并使用指定的函数获取错误信息返回
       Assert.notEmpty(collection, ()->{
            // to query relation message
            return new IllegalArgumentException("relation message to return");
        });
       
      Type Parameters:
      E - 集合元素类型
      T - 集合类型
      X - 异常类型
      Parameters:
      collection - 被检查的集合
      errorSupplier - 错误抛出异常附带的消息生产接口
      Returns:
      非空集合
      Throws:
      X - if the collection is null or has no elements
      See Also:
    • notEmpty

      public static <E, T extends Iterable<E>> T notEmpty(T collection, String errorMsgTemplate, Object... params) throws IllegalArgumentException
      断言给定集合非空
       Assert.notEmpty(collection, "Collection must have elements");
       
      Type Parameters:
      E - 集合元素类型
      T - 集合类型
      Parameters:
      collection - 被检查的集合
      errorMsgTemplate - 异常时的消息模板
      params - 参数列表
      Returns:
      非空集合
      Throws:
      IllegalArgumentException - if the collection is null or has no elements
    • notEmpty

      public static <E, T extends Iterable<E>> T notEmpty(T collection) throws IllegalArgumentException
      断言给定集合非空
       Assert.notEmpty(collection);
       
      Type Parameters:
      E - 集合元素类型
      T - 集合类型
      Parameters:
      collection - 被检查的集合
      Returns:
      被检查集合
      Throws:
      IllegalArgumentException - if the collection is null or has no elements
    • notEmpty

      public static <K, V, T extends Map<K, V>, X extends Throwable> T notEmpty(T map, Supplier<X> errorSupplier) throws X
      断言给定Map非空 并使用指定的函数获取错误信息返回
       Assert.notEmpty(map, ()->{
            // to query relation message
            return new IllegalArgumentException("relation message to return");
        });
       
      Type Parameters:
      K - Key类型
      V - Value类型
      T - Map类型
      X - 异常类型
      Parameters:
      map - 被检查的Map
      errorSupplier - 错误抛出异常附带的消息生产接口
      Returns:
      被检查的Map
      Throws:
      X - if the map is null or has no entries
      See Also:
    • notEmpty

      public static <K, V, T extends Map<K, V>> T notEmpty(T map, String errorMsgTemplate, Object... params) throws IllegalArgumentException
      断言给定Map非空
       Assert.notEmpty(map, "Map must have entries");
       
      Type Parameters:
      K - Key类型
      V - Value类型
      T - Map类型
      Parameters:
      map - 被检查的Map
      errorMsgTemplate - 异常时的消息模板
      params - 参数列表
      Returns:
      被检查的Map
      Throws:
      IllegalArgumentException - if the map is null or has no entries
    • notEmpty

      public static <K, V, T extends Map<K, V>> T notEmpty(T map) throws IllegalArgumentException
      断言给定Map非空
       Assert.notEmpty(map, "Map must have entries");
       
      Type Parameters:
      K - Key类型
      V - Value类型
      T - Map类型
      Parameters:
      map - 被检查的Map
      Returns:
      被检查的Map
      Throws:
      IllegalArgumentException - if the map is null or has no entries
    • isInstanceOf

      public static <T> T isInstanceOf(Class<?> type, T obj)
      断言给定对象是否是给定类的实例
       Assert.instanceOf(Foo.class, foo);
       
      Type Parameters:
      T - 被检查对象泛型类型
      Parameters:
      type - 被检查对象匹配的类型
      obj - 被检查对象
      Returns:
      被检查的对象
      Throws:
      IllegalArgumentException - if the object is not an instance of clazz
      See Also:
    • isInstanceOf

      public static <T> T isInstanceOf(Class<?> type, T obj, String errorMsgTemplate, Object... params) throws IllegalArgumentException
      断言给定对象是否是给定类的实例
       Assert.instanceOf(Foo.class, foo, "foo must be an instance of class Foo");
       
      Type Parameters:
      T - 被检查对象泛型类型
      Parameters:
      type - 被检查对象匹配的类型
      obj - 被检查对象
      errorMsgTemplate - 异常时的消息模板
      params - 参数列表
      Returns:
      被检查对象
      Throws:
      IllegalArgumentException - if the object is not an instance of clazz
      See Also:
    • isAssignable

      public static void isAssignable(Class<?> superType, Class<?> subType) throws IllegalArgumentException
      断言 superType.isAssignableFrom(subType) 是否为 true.
       Assert.isAssignable(Number.class, myClass);
       
      Parameters:
      superType - 需要检查的父类或接口
      subType - 需要检查的子类
      Throws:
      IllegalArgumentException - 如果子类非继承父类,抛出此异常
    • isAssignable

      public static void isAssignable(Class<?> superType, Class<?> subType, String errorMsgTemplate, Object... params) throws IllegalArgumentException
      断言 superType.isAssignableFrom(subType) 是否为 true.
       Assert.isAssignable(Number.class, myClass, "myClass must can be assignable to class Number");
       
      Parameters:
      superType - 需要检查的父类或接口
      subType - 需要检查的子类
      errorMsgTemplate - 异常时的消息模板
      params - 参数列表
      Throws:
      IllegalArgumentException - 如果子类非继承父类,抛出此异常
    • state

      public static void state(boolean expression, Supplier<String> errorMsgSupplier) throws IllegalStateException
      检查boolean表达式,当检查结果为false时抛出 IllegalStateException。 并使用指定的函数获取错误信息返回
       Assert.state(data == null, ()->{
            // to query relation message
            return "relation message to return ";
        });
       
      Parameters:
      expression - boolean 表达式
      errorMsgSupplier - 错误抛出异常附带的消息生产接口
      Throws:
      IllegalStateException - 表达式为 false 抛出此异常
    • state

      public static void state(boolean expression, String errorMsgTemplate, Object... params) throws IllegalStateException
      检查boolean表达式,当检查结果为false时抛出 IllegalStateException
       Assert.state(data == null, "The data property must not already be initialized");
       
      Parameters:
      expression - boolean 表达式
      errorMsgTemplate - 异常时的消息模板
      params - 参数列表
      Throws:
      IllegalStateException - 表达式为 false 抛出此异常
    • state

      public static void state(boolean expression) throws IllegalStateException
      检查boolean表达式,当检查结果为false时抛出 IllegalStateException
       Assert.state(data == null);
       
      Parameters:
      expression - boolean 表达式
      Throws:
      IllegalStateException - 表达式为 false 抛出此异常
    • checkIndex

      public static int checkIndex(int index, int size) throws IllegalArgumentException, IndexOutOfBoundsException
      检查下标(数组、集合、字符串)是否符合要求,下标必须满足:
       0 ≤ index < size
       
      Parameters:
      index - 下标
      size - 长度
      Returns:
      检查后的下标
      Throws:
      IllegalArgumentException - 如果size < 0 抛出此异常
      IndexOutOfBoundsException - 如果index < 0或者 index ≥ size 抛出此异常
    • checkIndex

      public static int checkIndex(int index, int size, String errorMsgTemplate, Object... params) throws IllegalArgumentException, IndexOutOfBoundsException
      检查下标(数组、集合、字符串)是否符合要求,下标必须满足:
       0 ≤ index < size
       
      Parameters:
      index - 下标
      size - 长度
      errorMsgTemplate - 异常时的消息模板
      params - 参数列表
      Returns:
      检查后的下标
      Throws:
      IllegalArgumentException - 如果size < 0 抛出此异常
      IndexOutOfBoundsException - 如果index < 0或者 index ≥ size 抛出此异常
    • checkBetween

      public static <X extends Throwable> int checkBetween(int value, int min, int max, Supplier<? extends X> errorSupplier) throws X
      检查值是否在指定范围内
      Type Parameters:
      X - 异常类型
      Parameters:
      value - 值
      min - 最小值(包含)
      max - 最大值(包含)
      errorSupplier - 错误抛出异常附带的消息生产接口
      Returns:
      经过检查后的值
      Throws:
      X - if value is out of bound
    • checkBetween

      public static int checkBetween(int value, int min, int max, String errorMsgTemplate, Object... params)
      检查值是否在指定范围内
      Parameters:
      value - 值
      min - 最小值(包含)
      max - 最大值(包含)
      errorMsgTemplate - 异常信息模板,类似于"aa{}bb{}cc"
      params - 异常信息参数,用于替换"{}"占位符
      Returns:
      经过检查后的值
    • checkBetween

      public static int checkBetween(int value, int min, int max)
      检查值是否在指定范围内
      Parameters:
      value - 值
      min - 最小值(包含)
      max - 最大值(包含)
      Returns:
      检查后的长度值
    • checkBetween

      public static <X extends Throwable> long checkBetween(long value, long min, long max, Supplier<? extends X> errorSupplier) throws X
      检查值是否在指定范围内
      Type Parameters:
      X - 异常类型
      Parameters:
      value - 值
      min - 最小值(包含)
      max - 最大值(包含)
      errorSupplier - 错误抛出异常附带的消息生产接口
      Returns:
      经过检查后的值
      Throws:
      X - if value is out of bound
    • checkBetween

      public static long checkBetween(long value, long min, long max, String errorMsgTemplate, Object... params)
      检查值是否在指定范围内
      Parameters:
      value - 值
      min - 最小值(包含)
      max - 最大值(包含)
      errorMsgTemplate - 异常信息模板,类似于"aa{}bb{}cc"
      params - 异常信息参数,用于替换"{}"占位符
      Returns:
      经过检查后的值
    • checkBetween

      public static long checkBetween(long value, long min, long max)
      检查值是否在指定范围内
      Parameters:
      value - 值
      min - 最小值(包含)
      max - 最大值(包含)
      Returns:
      检查后的长度值
    • checkBetween

      public static <X extends Throwable> double checkBetween(double value, double min, double max, Supplier<? extends X> errorSupplier) throws X
      检查值是否在指定范围内
      Type Parameters:
      X - 异常类型
      Parameters:
      value - 值
      min - 最小值(包含)
      max - 最大值(包含)
      errorSupplier - 错误抛出异常附带的消息生产接口
      Returns:
      经过检查后的值
      Throws:
      X - if value is out of bound
    • checkBetween

      public static double checkBetween(double value, double min, double max, String errorMsgTemplate, Object... params)
      检查值是否在指定范围内
      Parameters:
      value - 值
      min - 最小值(包含)
      max - 最大值(包含)
      errorMsgTemplate - 异常信息模板,类似于"aa{}bb{}cc"
      params - 异常信息参数,用于替换"{}"占位符
      Returns:
      经过检查后的值
    • checkBetween

      public static double checkBetween(double value, double min, double max)
      检查值是否在指定范围内
      Parameters:
      value - 值
      min - 最小值(包含)
      max - 最大值(包含)
      Returns:
      检查后的长度值
    • checkBetween

      public static Number checkBetween(Number value, Number min, Number max)
      检查值是否在指定范围内
      Parameters:
      value - 值
      min - 最小值(包含)
      max - 最大值(包含)
      Returns:
      检查后的长度值
    • notEquals

      public static void notEquals(Object obj1, Object obj2)
      断言两个对象是否不相等,如果两个对象相等 抛出IllegalArgumentException 异常
         Assert.notEquals(obj1,obj2);
       
      Parameters:
      obj1 - 对象1
      obj2 - 对象2
      Throws:
      IllegalArgumentException - obj1 must be not equals obj2
    • notEquals

      public static void notEquals(Object obj1, Object obj2, String errorMsgTemplate, Object... params) throws IllegalArgumentException
      断言两个对象是否不相等,如果两个对象相等 抛出IllegalArgumentException 异常
         Assert.notEquals(obj1,obj2,"obj1 must be not equals obj2");
       
      Parameters:
      obj1 - 对象1
      obj2 - 对象2
      errorMsgTemplate - 异常信息模板,类似于"aa{}bb{}cc"
      params - 异常信息参数,用于替换"{}"占位符
      Throws:
      IllegalArgumentException - obj1 must be not equals obj2
    • notEquals

      public static <X extends Throwable> void notEquals(Object obj1, Object obj2, Supplier<X> errorSupplier) throws X
      断言两个对象是否不相等,如果两个对象相等,抛出指定类型异常,并使用指定的函数获取错误信息返回
      Type Parameters:
      X - 异常类型
      Parameters:
      obj1 - 对象1
      obj2 - 对象2
      errorSupplier - 错误抛出异常附带的消息生产接口
      Throws:
      X - obj1 must be not equals obj2
    • equals

      public static void equals(Object obj1, Object obj2)
      断言两个对象是否相等,如果两个对象不相等 抛出IllegalArgumentException 异常
         Assert.isEquals(obj1,obj2);
       
      Parameters:
      obj1 - 对象1
      obj2 - 对象2
      Throws:
      IllegalArgumentException - obj1 must be equals obj2
    • equals

      public static void equals(Object obj1, Object obj2, String errorMsgTemplate, Object... params) throws IllegalArgumentException
      断言两个对象是否相等,如果两个对象不相等 抛出IllegalArgumentException 异常
         Assert.isEquals(obj1,obj2,"obj1 must be equals obj2");
       
      Parameters:
      obj1 - 对象1
      obj2 - 对象2
      errorMsgTemplate - 异常信息模板,类似于"aa{}bb{}cc"
      params - 异常信息参数,用于替换"{}"占位符
      Throws:
      IllegalArgumentException - obj1 must be equals obj2
    • equals

      public static <X extends Throwable> void equals(Object obj1, Object obj2, Supplier<X> errorSupplier) throws X
      断言两个对象是否相等,如果两个对象不相等,抛出指定类型异常,并使用指定的函数获取错误信息返回
      Type Parameters:
      X - 异常类型
      Parameters:
      obj1 - 对象1
      obj2 - 对象2
      errorSupplier - 错误抛出异常附带的消息生产接口
      Throws:
      X - obj1 must be equals obj2