Class ObjectValidator

java.lang.Object
org.miaixz.bus.core.center.object.ObjectValidator
Direct Known Subclasses:
ObjectKit

public class ObjectValidator extends Object
对象检查工具类,提供字对象的blank和empty等检查
  • empty定义:null or 空字对象:""
  • blank定义:null or 空字对象:"" or 空格、全角空格、制表符、换行符,等不可见字符
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Details

    • ObjectValidator

      public ObjectValidator()
  • Method Details

    • isNull

      public static boolean isNull(Object obj)
      检查对象是否为null
      Parameters:
      obj - 对象
      Returns:
      是否为null
    • isNotNull

      public static boolean isNotNull(Object obj)
      检查对象是否不为null
      Parameters:
      obj - 对象
      Returns:
      是否不为null
    • isEmpty

      public static boolean isEmpty(Object obj)
      判断指定对象是否为空,支持类型包括:
      Parameters:
      obj - 被判断的对象
      Returns:
      是否为空,如果类型不支持,返回false
      See Also:
    • isNotEmpty

      public static boolean isNotEmpty(Object obj)
      判断指定对象是否为非空
      Parameters:
      obj - 被判断的对象
      Returns:
      是否不为空,如果类型不支持,返回true
      See Also:
    • isBlankIfString

      public static boolean isBlankIfString(Object obj)
      如果对象是字符串是否为空白,空白的定义如下:
      1. null
      2. 空字符串:""
      3. 空格、全角空格、制表符、换行符,等不可见字符
      • isBlankIfString(null) // true
      • isBlankIfString("") // true
      • isBlankIfString(" \t\n") // true
      • isBlankIfString("abc") // false
      注意:该方法与 isEmptyIfString(Object) 的区别是: 该方法会校验空白字符,且性能相对于 isEmptyIfString(Object) 略慢。
      Parameters:
      obj - 对象
      Returns:
      如果为字符串是否为空串
      See Also:
    • isEmptyIfString

      public static boolean isEmptyIfString(Object obj)
      如果对象是字符串是否为空串,空的定义如下:
      1. null
      2. 空字符串:""
      • isEmptyIfString(null) // true
      • isEmptyIfString("") // true
      • isEmptyIfString(" \t\n") // false
      • isEmptyIfString("abc") // false

      注意:该方法与 isBlankIfString(Object) 的区别是:该方法不校验空白字符。

      Parameters:
      obj - 对象
      Returns:
      如果为字符串是否为空串
    • defaultIfNull

      public static <T> T defaultIfNull(T object, T defaultValue)
      如果给定对象为null返回默认值
      
       ObjectKit.defaultIfNull(null, null);      // = null
       ObjectKit.defaultIfNull(null, "");        // = ""
       ObjectKit.defaultIfNull(null, "zz");      // = "zz"
       ObjectKit.defaultIfNull("abc", *);        // = "abc"
       ObjectKit.defaultIfNull(Boolean.TRUE, *); // = Boolean.TRUE
       
      Type Parameters:
      T - 对象类型
      Parameters:
      object - 被检查对象,可能为null
      defaultValue - 被检查对象为null返回的默认值,可以为null
      Returns:
      被检查对象不为 null 返回原值,否则返回默认值
    • defaultIfNull

      public static <T> T defaultIfNull(T source, Supplier<? extends T> defaultSupplier)
      如果给定对象不为null 返回原值, 否则返回 Supplier.get() 提供的默认值
      Type Parameters:
      T - 被检查对象类型
      Parameters:
      source - 被检查对象,可能为null
      defaultSupplier - 为空时的默认值提供者
      Returns:
      被检查对象不为 null 返回原值,否则返回 Supplier.get() 提供的默认值
    • defaultIfNull

      public static <T, R> R defaultIfNull(T source, Function<? super T,? extends R> handler, R defaultValue)
      如果给定对象不为null 返回自定义handler处理后的结果,否则返回默认值
      Type Parameters:
      T - 被检查对象类型
      R - 返回值类型
      Parameters:
      source - 被检查对象,可能为null
      handler - 非空时自定义的处理方法
      defaultValue - 为空时的默认返回值
      Returns:
      被检查对象不为 null 返回处理后的结果,否则返回默认值
    • defaultIfNull

      public static <T, R> R defaultIfNull(T source, Function<? super T,? extends R> handler, Supplier<? extends R> defaultSupplier)
      如果给定对象不为null 返回自定义handler处理后的结果,否则返回 Supplier.get() 提供的默认值
      Type Parameters:
      T - 被检查对象类型
      R - 返回值类型
      Parameters:
      source - 被检查对象,可能为null
      handler - 非空时自定义的处理方法
      defaultSupplier - 为空时的默认值提供者
      Returns:
      被检查对象不为 null 返回处理后的结果,否则返回 Supplier.get() 提供的默认值
    • equals

      public static boolean equals(Object obj1, Object obj2)
      比较两个对象是否相等,满足下述任意条件即返回true
      • 若两对象皆为BigDecimal,且满足0 == obj1.compareTo(obj2)
      • 若两对象都为数组,调用Arrays.equals完成判断
      • obj1 == null && obj2 == null
      • obj1.equals(obj2)
      Parameters:
      obj1 - 对象1
      obj2 - 对象2
      Returns:
      是否相等
    • notEquals

      public static boolean notEquals(Object obj1, Object obj2)
      比较两个对象是否不相等
      Parameters:
      obj1 - 对象1
      obj2 - 对象2
      Returns:
      是否不等
      See Also:
    • isBasicType

      public static boolean isBasicType(Object object)
      是否为基本类型,包括包装类型和原始类型
      Parameters:
      object - 被检查对象,null返回false
      Returns:
      是否为基本类型
      See Also:
    • isValidIfNumber

      public static boolean isValidIfNumber(Object obj)
      是否为有效的数字,主要用于检查浮点数是否为有意义的数值 若对象不为Number类型,则直接返回true,否则:
      Parameters:
      obj - 被检查对象
      Returns:
      检查结果,非数字类型和null将返回true
      See Also: