Class ObjectValidator
java.lang.Object
org.miaixz.bus.core.center.object.ObjectValidator
- Direct Known Subclasses:
ObjectKit
对象检查工具类,提供字对象的blank和empty等检查
- empty定义:
nullor 空字对象:"" - blank定义:
nullor 空字对象:""or 空格、全角空格、制表符、换行符,等不可见字符
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <T,R> R defaultIfNull(T source, Function<? super T, ? extends R> handler, Supplier<? extends R> defaultSupplier) 如果给定对象不为null返回自定义handler处理后的结果,否则返回Supplier.get()提供的默认值static <T,R> R defaultIfNull(T source, Function<? super T, ? extends R> handler, R defaultValue) 如果给定对象不为null返回自定义handler处理后的结果,否则返回默认值static <T> TdefaultIfNull(T source, Supplier<? extends T> defaultSupplier) 如果给定对象不为null返回原值, 否则返回Supplier.get()提供的默认值static <T> TdefaultIfNull(T object, T defaultValue) 如果给定对象为null返回默认值static boolean比较两个对象是否相等,满足下述任意条件即返回true: 若两对象皆为BigDecimal,且满足0 == obj1.compareTo(obj2)若两对象都为数组,调用Arrays.equals完成判断obj1 == null && obj2 == nullobj1.equals(obj2)static booleanisBasicType(Object object) 是否为基本类型,包括包装类型和原始类型static booleanisBlankIfString(Object obj) 如果对象是字符串是否为空白,空白的定义如下:null空字符串:""空格、全角空格、制表符、换行符,等不可见字符isBlankIfString(null) // trueisBlankIfString("") // trueisBlankIfString(" \t\n") // trueisBlankIfString("abc") // false注意:该方法与isEmptyIfString(Object)的区别是: 该方法会校验空白字符,且性能相对于isEmptyIfString(Object)略慢。static boolean判断指定对象是否为空,支持类型包括:null:默认返回true; 数组:等同于ArrayValidator.isEmpty(Object);CharSequence:等同于CharsValidator.isEmpty(CharSequence);Collection:等同于CollectionValidator.isEmpty(Collection);Map:等同于MapValidator.isEmpty(Map);Iterator或Iterable:等同于IteratorValidator.isEmpty(Iterator)、IteratorValidator.isEmpty(Iterable);static booleanisEmptyIfString(Object obj) 如果对象是字符串是否为空串,空的定义如下:null空字符串:""isEmptyIfString(null) // trueisEmptyIfString("") // trueisEmptyIfString(" \t\n") // falseisEmptyIfString("abc") // falsestatic booleanisNotEmpty(Object obj) 判断指定对象是否为非空static boolean检查对象是否不为nullstatic boolean检查对象是否为nullstatic booleanisValidIfNumber(Object obj) 是否为有效的数字,主要用于检查浮点数是否为有意义的数值 若对象不为Number类型,则直接返回true,否则: 若对象类型为Double,则检查Double.isInfinite()或Double.isNaN(); 若对象类型为Float,则检查Float.isInfinite()或Float.isNaN();static boolean比较两个对象是否不相等
-
Constructor Details
-
ObjectValidator
public ObjectValidator()
-
-
Method Details
-
isNull
检查对象是否为null- Parameters:
obj- 对象- Returns:
- 是否为null
-
isNotNull
检查对象是否不为null- Parameters:
obj- 对象- Returns:
- 是否不为null
-
isEmpty
判断指定对象是否为空,支持类型包括:- Parameters:
obj- 被判断的对象- Returns:
- 是否为空,如果类型不支持,返回false
- See Also:
-
isNotEmpty
判断指定对象是否为非空- Parameters:
obj- 被判断的对象- Returns:
- 是否不为空,如果类型不支持,返回true
- See Also:
-
isBlankIfString
如果对象是字符串是否为空白,空白的定义如下:null- 空字符串:
"" - 空格、全角空格、制表符、换行符,等不可见字符
isBlankIfString(null) // trueisBlankIfString("") // trueisBlankIfString(" \t\n") // trueisBlankIfString("abc") // false
isEmptyIfString(Object)的区别是: 该方法会校验空白字符,且性能相对于isEmptyIfString(Object)略慢。- Parameters:
obj- 对象- Returns:
- 如果为字符串是否为空串
- See Also:
-
isEmptyIfString
如果对象是字符串是否为空串,空的定义如下:null- 空字符串:
""
isEmptyIfString(null) // trueisEmptyIfString("") // trueisEmptyIfString(" \t\n") // falseisEmptyIfString("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- 被检查对象,可能为nulldefaultValue- 被检查对象为null返回的默认值,可以为null- Returns:
- 被检查对象不为
null返回原值,否则返回默认值
-
defaultIfNull
如果给定对象不为null返回原值, 否则返回Supplier.get()提供的默认值- Type Parameters:
T- 被检查对象类型- Parameters:
source- 被检查对象,可能为nulldefaultSupplier- 为空时的默认值提供者- 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- 被检查对象,可能为nullhandler- 非空时自定义的处理方法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- 被检查对象,可能为nullhandler- 非空时自定义的处理方法defaultSupplier- 为空时的默认值提供者- Returns:
- 被检查对象不为
null返回处理后的结果,否则返回Supplier.get()提供的默认值
-
equals
比较两个对象是否相等,满足下述任意条件即返回true:- 若两对象皆为
BigDecimal,且满足0 == obj1.compareTo(obj2) - 若两对象都为数组,调用Arrays.equals完成判断
obj1 == null && obj2 == nullobj1.equals(obj2)
- Parameters:
obj1- 对象1obj2- 对象2- Returns:
- 是否相等
- 若两对象皆为
-
notEquals
比较两个对象是否不相等- Parameters:
obj1- 对象1obj2- 对象2- Returns:
- 是否不等
- See Also:
-
isBasicType
是否为基本类型,包括包装类型和原始类型- Parameters:
object- 被检查对象,null返回false- Returns:
- 是否为基本类型
- See Also:
-
isValidIfNumber
是否为有效的数字,主要用于检查浮点数是否为有意义的数值 若对象不为Number类型,则直接返回true,否则:- 若对象类型为
Double,则检查Double.isInfinite()或Double.isNaN(); - 若对象类型为
Float,则检查Float.isInfinite()或Float.isNaN();
- Parameters:
obj- 被检查对象- Returns:
- 检查结果,非数字类型和
null将返回true - See Also:
- 若对象类型为
-