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 == null
obj1.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)
null
obj
- 对象public static boolean isNotNull(Object obj)
null
obj
- 对象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
- 被检查对象,可能为null
defaultValue
- 被检查对象为null
返回的默认值,可以为null
null
返回原值,否则返回默认值public static <T> T defaultIfNull(T object, Supplier<? extends T> defaultSupplier)
null
返回原值, 否则返回 Supplier.get()
提供的默认值T
- 被检查对象类型object
- 被检查对象,可能为null
defaultSupplier
- 为空时的默认值提供者null
返回原值,否则返回 Supplier.get()
提供的默认值public static <T,R> R defaultIfNull(T object, Function<? super T,? extends R> handler, R defaultValue)
null
返回自定义handler处理后的结果,否则返回默认值R
- 返回值类型T
- 被检查对象类型object
- 被检查对象,可能为null
handler
- 非空时自定义的处理方法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
- 被检查对象,可能为null
handler
- 非空时自定义的处理方法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
返回false
ClassUtil.isBasicType(Class)
public static boolean isValidIfNumber(Object obj)
Number
类型,则直接返回true
,否则:
Double
,则检查Double.isInfinite()
或Double.isNaN()
;Float
,则检查Float.isInfinite()
或Float.isNaN()
;obj
- 被检查对象null
将返回true
NumberUtil.isValidNumber(Number)
public static Class<?> getTypeArgument(Object obj)
obj
- 被检查的实体对象Class
public static Class<?> getTypeArgument(Object obj, int index)
obj
- 被检查的实体对象index
- 泛型类型的索引号,即第几个泛型类型Class
ClassUtil.getTypeArgument(Class, int)
Copyright © 2025. All rights reserved.