public class ObjUtil extends Object
ArrayUtil.hasBlank(CharSequence...)、ArrayUtil.isAllBlank(CharSequence...)等等| Constructor and Description |
|---|
ObjUtil() |
| Modifier and Type | Method and Description |
|---|---|
static <T> void |
accept(T source,
Consumer<T> consumer)
如果指定的对象不为
null,则执行Consumer处理source,否则不进行操作 |
static <T,R> R |
apply(T source,
Function<T,R> handler)
如果指定的对象不为
null,则应用提供的映射函数并返回结果,否则返回 null。 |
static <T> T |
clone(T obj)
克隆对象
如果对象是数组,则等同于
ArrayUtil.clone(Object);
如果对象实现了Cloneable接口,调用 Object.clone()方法;
如果对象实现了Serializable接口,执行深度克隆;
不符合上述任意情况则返回null;
|
static <T> T |
cloneByStream(T obj)
|
static <T> T |
cloneIfPossible(T obj)
返回克隆后的对象,如果克隆失败,返回原对象
|
static boolean |
contains(Object obj,
Object element)
检查
obj中是否包含element,若obj为null,则直接返回false。 |
static <T,R> R |
defaultIfNull(T object,
Function<? super T,? extends R> handler,
R defaultValue)
如果给定对象不为
null 返回自定义handler处理后的结果,否则返回默认值 |
static <T,R> R |
defaultIfNull(T object,
Function<? super T,? extends R> handler,
Supplier<? extends R> defaultSupplier)
如果给定对象不为
null 返回自定义handler处理后的结果,否则返回 Supplier.get() 提供的默认值 |
static <T> T |
defaultIfNull(T object,
Supplier<? extends T> defaultSupplier)
如果给定对象不为
null 返回原值, 否则返回 Supplier.get() 提供的默认值 |
static <T> T |
defaultIfNull(T object,
T defaultValue)
如果给定对象为
null返回默认值
ObjUtil.defaultIfNull(null, null); // = null
ObjUtil.defaultIfNull(null, ""); // = ""
ObjUtil.defaultIfNull(null, "zz"); // = "zz"
ObjUtil.defaultIfNull("abc", *); // = "abc"
ObjUtil.defaultIfNull(Boolean.TRUE, *); // = Boolean.TRUE
|
static boolean |
equals(Object obj1,
Object obj2)
比较两个对象是否相等,满足下述任意条件即返回
true:
若两对象皆为BigDecimal,且满足0 == obj1.compareTo(obj2)
若两对象都为数组,调用Arrays.equals完成判断
obj1 == null && obj2 == null
obj1.equals(obj2)
|
static Class<?> |
getTypeArgument(Object obj)
获得给定类的第一个泛型参数
|
static Class<?> |
getTypeArgument(Object obj,
int index)
获得给定类指定下标的泛型参数
|
static boolean |
isBasicType(Object object)
是否为基本类型,包括包装类型和原始类型
|
static boolean |
isEmpty(Object obj)
判断指定对象是否为空,支持类型包括:
null:默认返回true;
数组:等同于ArrayUtil.isEmpty(Object);
CharSequence:等同于StrValidator.isEmpty(CharSequence);
Collection:等同于CollUtil.isEmpty(Collection);
Map:等同于MapUtil.isEmpty(Map);
Iterator或Iterable:等同于IterUtil.isEmpty(Iterator)、
IterUtil.isEmpty(Iterable);
|
static boolean |
isNotEmpty(Object obj)
判断指定对象是否为非空
|
static boolean |
isNotNull(Object obj)
检查对象是否不为
null |
static boolean |
isNull(Object obj)
检查对象是否为
null |
static boolean |
isValidIfNumber(Object obj)
是否为有效的数字,主要用于检查浮点数是否为有意义的数值
若对象不为 Number类型,则直接返回true,否则:
若对象类型为Double,则检查Double.isInfinite()或Double.isNaN();
若对象类型为Float,则检查Float.isInfinite()或Float.isNaN();
|
static int |
length(Object obj)
计算对象长度,支持类型包括:
null:默认返回0;
数组:返回数组长度;
CharSequence:返回CharSequence.length();
Collection:返回Collection.size();
Iterator或Iterable:可迭代的元素数量;
Enumeration:返回可迭代的元素数量;
|
static boolean |
notEquals(Object obj1,
Object obj2)
比较两个对象是否不相等
|
public static boolean equals(Object obj1, Object obj2)
比较两个对象是否相等,满足下述任意条件即返回true:
BigDecimal,且满足0 == obj1.compareTo(obj2)obj1 == null && obj2 == nullobj1.equals(obj2)obj1 - 对象1obj2 - 对象2public static boolean notEquals(Object obj1, Object obj2)
obj1 - 对象1obj2 - 对象2equals(Object, Object)public static int length(Object obj)
计算对象长度,支持类型包括:
null:默认返回0;CharSequence:返回CharSequence.length();Collection:返回Collection.size();Iterator或Iterable:可迭代的元素数量;Enumeration:返回可迭代的元素数量;obj - 被计算长度的对象public static boolean contains(Object obj, Object element)
检查obj中是否包含element,若obj为null,则直接返回false。
支持类型包括:
null:默认返回false;String:等同String.contains(CharSequence);Collection:等同Collection.contains(Object);Map:等同Map.containsValue(Object);Iterator、Iterable、Enumeration或数组:
等同于遍历后对其元素调用equals(Object, Object)方法;
obj - 对象element - 元素public static boolean isNull(Object obj)
nullobj - 对象public static boolean isNotNull(Object obj)
nullobj - 对象public static boolean isEmpty(Object obj)
obj - 被判断的对象StrValidator.isEmpty(CharSequence),
MapUtil.isEmpty(Map),
IterUtil.isEmpty(Iterable),
IterUtil.isEmpty(Iterator),
ArrayUtil.isEmpty(Object)public static boolean isNotEmpty(Object obj)
obj - 被判断的对象isEmpty(Object)public static <T> T defaultIfNull(T object,
T defaultValue)
如果给定对象为null返回默认值
ObjUtil.defaultIfNull(null, null); // = null
ObjUtil.defaultIfNull(null, ""); // = ""
ObjUtil.defaultIfNull(null, "zz"); // = "zz"
ObjUtil.defaultIfNull("abc", *); // = "abc"
ObjUtil.defaultIfNull(Boolean.TRUE, *); // = Boolean.TRUE
T - 对象类型object - 被检查对象,可能为nulldefaultValue - 被检查对象为null返回的默认值,可以为nullnull 返回原值,否则返回默认值public static <T> T defaultIfNull(T object,
Supplier<? extends T> defaultSupplier)
null 返回原值, 否则返回 Supplier.get() 提供的默认值T - 被检查对象类型object - 被检查对象,可能为nulldefaultSupplier - 为空时的默认值提供者null 返回原值,否则返回 Supplier.get() 提供的默认值public static <T,R> R defaultIfNull(T object,
Function<? super T,? extends R> handler,
R defaultValue)
null 返回自定义handler处理后的结果,否则返回默认值R - 返回值类型T - 被检查对象类型object - 被检查对象,可能为nullhandler - 非空时自定义的处理方法defaultValue - 为空时的默认返回值null 返回处理后的结果,否则返回默认值public static <T,R> R defaultIfNull(T object,
Function<? super T,? extends R> handler,
Supplier<? extends R> defaultSupplier)
null 返回自定义handler处理后的结果,否则返回 Supplier.get() 提供的默认值R - 返回值类型T - 被检查对象类型object - 被检查对象,可能为nullhandler - 非空时自定义的处理方法defaultSupplier - 为空时的默认值提供者null 返回处理后的结果,否则返回 Supplier.get() 提供的默认值public static <T,R> R apply(T source,
Function<T,R> handler)
null,则应用提供的映射函数并返回结果,否则返回 null。T - 输入对象的类型R - 映射函数的返回类型source - 要检查的对象handler - 要应用的映射函数public static <T> void accept(T source,
Consumer<T> consumer)
null,则执行Consumer处理source,否则不进行操作T - 输入对象的类型source - 要检查的对象consumer - source处理逻辑public static <T> T clone(T obj)
克隆对象
ArrayUtil.clone(Object);Cloneable接口,调用 Object.clone()方法;Serializable接口,执行深度克隆;null;T - 对象类型obj - 被克隆对象ArrayUtil.clone(Object),
Object.clone(),
cloneByStream(Object)public static <T> T cloneIfPossible(T obj)
T - 对象类型obj - 对象clone(Object)public static <T> T cloneByStream(T obj)
T - 对象类型obj - 被克隆对象HutoolException - IO异常和ClassNotFoundException封装SerializeUtil.clone(Object)public static boolean isBasicType(Object object)
object - 被检查对象,null返回falseClassUtil.isBasicType(Class)public static boolean isValidIfNumber(Object obj)
Number类型,则直接返回true,否则:
Double,则检查Double.isInfinite()或Double.isNaN();Float,则检查Float.isInfinite()或Float.isNaN();obj - 被检查对象null将返回trueNumberUtil.isValidNumber(Number)public static Class<?> getTypeArgument(Object obj)
obj - 被检查的实体对象Classpublic static Class<?> getTypeArgument(Object obj, int index)
obj - 被检查的实体对象index - 泛型类型的索引号,即第几个泛型类型ClassClassUtil.getTypeArgument(Class, int)Copyright © 2025. All rights reserved.