Constructor and Description |
---|
ObjectUtil() |
Modifier and Type | Method and Description |
---|---|
static <T> T |
clone(T obj)
克隆对象
如果对象实现Cloneable接口,调用其clone方法 如果实现Serializable接口,执行深度克隆 否则返回 null |
static <T> T |
cloneByStream(T obj)
序列化后拷贝流的方式克隆
对象必须实现Serializable接口 |
static <T> T |
cloneIfPossible(T obj)
返回克隆后的对象,如果克隆失败,返回原对象
|
static <T extends Comparable<? super T>> |
compare(T c1,
T c2)
null 安全的对象比较,null 对象排在末尾 |
static <T extends Comparable<? super T>> |
compare(T c1,
T c2,
boolean nullGreater)
null 安全的对象比较 |
static boolean |
contains(Object obj,
Object element)
对象中是否包含元素
支持的对象类型包括: String Collection Map Iterator Enumeration Array |
static <T extends CharSequence> |
defaultIfBlank(T str,
Function<T,? extends T> defaultValueSupplier)
如果被检查对象为
null 或 "" 或 空白字符串时,返回默认值(由 defaultValueSupplier 提供);否则直接返回 |
static <T extends CharSequence> |
defaultIfBlank(T str,
Supplier<? extends T> defaultValueSupplier)
如果被检查对象为
null 或 "" 或 空白字符串时,返回默认值(由 defaultValueSupplier 提供);否则直接返回 |
static <T extends CharSequence> |
defaultIfBlank(T str,
T defaultValue)
如果给定对象为
null 或者""或者空白符返回默认值
ObjectUtil.defaultIfBlank(null, null) = null
ObjectUtil.defaultIfBlank(null, "") = ""
ObjectUtil.defaultIfBlank("", "zz") = "zz"
ObjectUtil.defaultIfBlank(" ", "zz") = "zz"
ObjectUtil.defaultIfBlank("abc", *) = "abc"
|
static <T> T |
defaultIfEmpty(String str,
Function<CharSequence,? extends T> handle,
T defaultValue)
如果给定对象为
null 或者""返回默认值, 否则返回自定义handle处理后的返回值 |
static <T> T |
defaultIfEmpty(String str,
Supplier<? extends T> handle,
T defaultValue)
Deprecated.
当str为
null 时,handle使用了str相关的方法引用会导致空指针问题 |
static <T extends CharSequence> |
defaultIfEmpty(T str,
Function<T,? extends T> defaultValueSupplier)
如果被检查对象为
null 或 "" 时,返回默认值(由 defaultValueSupplier 提供);否则直接返回 |
static <T extends CharSequence> |
defaultIfEmpty(T str,
Supplier<? extends T> defaultValueSupplier)
如果被检查对象为
null 或 "" 时,返回默认值(由 defaultValueSupplier 提供);否则直接返回 |
static <T extends CharSequence> |
defaultIfEmpty(T str,
T defaultValue)
如果给定对象为
null 或者 "" 返回默认值
ObjectUtil.defaultIfEmpty(null, null) = null
ObjectUtil.defaultIfEmpty(null, "") = ""
ObjectUtil.defaultIfEmpty("", "zz") = "zz"
ObjectUtil.defaultIfEmpty(" ", "zz") = " "
ObjectUtil.defaultIfEmpty("abc", *) = "abc"
|
static <T> T |
defaultIfNull(Object source,
Supplier<? extends T> handle,
T defaultValue)
Deprecated.
当str为
null 时,handle使用了str相关的方法引用会导致空指针问题 |
static <T,R> T |
defaultIfNull(R source,
Function<R,? extends T> handle,
T defaultValue)
如果给定对象为
null 返回默认值, 如果不为null 返回自定义handle处理后的返回值 |
static <T> T |
defaultIfNull(T source,
Function<T,? extends T> defaultValueSupplier)
如果被检查对象为
null , 返回默认值(由 defaultValueSupplier 提供);否则直接返回 |
static <T> T |
defaultIfNull(T source,
Supplier<? extends T> defaultValueSupplier)
如果被检查对象为
null , 返回默认值(由 defaultValueSupplier 提供);否则直接返回 |
static <T> T |
defaultIfNull(T object,
T defaultValue)
如果给定对象为
null 返回默认值
ObjectUtil.defaultIfNull(null, null) = null
ObjectUtil.defaultIfNull(null, "") = ""
ObjectUtil.defaultIfNull(null, "zz") = "zz"
ObjectUtil.defaultIfNull("abc", *) = "abc"
ObjectUtil.defaultIfNull(Boolean.TRUE, *) = Boolean.TRUE
|
static <T> T |
deserialize(byte[] bytes,
Class<?>... acceptClasses)
反序列化
对象必须实现Serializable接口 注意!!! |
static int |
emptyCount(Object... objs)
存在多少个
null 或空对象,通过isEmpty(Object) 判断元素 |
static boolean |
equal(Object obj1,
Object obj2)
比较两个对象是否相等。
|
static boolean |
equals(Object obj1,
Object obj2)
比较两个对象是否相等,此方法是
equal(Object, Object) 的别名方法。 |
static Class<?> |
getTypeArgument(Object obj)
获得给定类的第一个泛型参数
|
static Class<?> |
getTypeArgument(Object obj,
int index)
获得给定类的第一个泛型参数
|
static boolean |
hasEmpty(Object... objs)
是否存在
null 或空对象,通过isEmpty(Object) 判断元素 |
static boolean |
hasNull(Object... objs)
是否存在
null 对象,通过isNull(Object) 判断元素 |
static boolean |
isAllEmpty(Object... objs)
是否全都为
null 或空对象,通过isEmpty(Object) 判断元素 |
static boolean |
isAllNotEmpty(Object... objs)
是否全都不为
null 或空对象,通过isEmpty(Object) 判断元素 |
static boolean |
isBasicType(Object object)
是否为基本类型,包括包装类型和非包装类型
|
static boolean |
isEmpty(Object obj)
判断指定对象是否为空,支持:
1.
|
static boolean |
isNotEmpty(Object obj)
判断指定对象是否为非空,支持:
1.
|
static boolean |
isNotNull(Object obj)
检查对象是否不为null
1. !
|
static boolean |
isNull(Object obj)
检查对象是否为null
判断标准为: 1. == null 2. equals(null) |
static boolean |
isValidIfNumber(Object obj)
检查是否为有效的数字
检查Double和Float是否为无限大,或者Not a Number 非数字类型和Null将返回true |
static int |
length(Object obj)
计算对象长度,如果是字符串调用其length函数,集合类调用其size函数,数组调用其length属性,其他可遍历对象遍历计算长度
支持的类型包括: CharSequence Map Iterator Enumeration Array |
static boolean |
notEqual(Object obj1,
Object obj2)
比较两个对象是否不相等。
|
static <T> byte[] |
serialize(T obj)
序列化
对象必须实现Serializable接口 |
static String |
toString(Object obj)
将Object转为String
策略为: 1、null转为"null" 2、调用Convert.toStr(Object)转换 |
public static boolean equals(Object obj1, Object obj2)
equal(Object, Object)
的别名方法。obj1
- 对象1obj2
- 对象2equal(Object, Object)
public static boolean equal(Object obj1, Object obj2)
obj1
- 对象1obj2
- 对象2Objects.equals(Object, Object)
public static boolean notEqual(Object obj1, Object obj2)
obj1
- 对象1obj2
- 对象2public static int length(Object obj)
obj
- 被计算长度的对象public static boolean contains(Object obj, Object element)
obj
- 对象element
- 元素public static boolean isNull(Object obj)
1. == null 2. equals(null)
obj
- 对象public static boolean isNotNull(Object obj)
1. != null 2. not equals(null)
obj
- 对象public static boolean isEmpty(Object obj)
1. CharSequence 2. Map 3. Iterable 4. Iterator 5. Array
obj
- 被判断的对象public static boolean isNotEmpty(Object obj)
1. CharSequence 2. Map 3. Iterable 4. Iterator 5. Array
obj
- 被判断的对象public static <T> T defaultIfNull(T object, T defaultValue)
null
返回默认值
ObjectUtil.defaultIfNull(null, null) = null ObjectUtil.defaultIfNull(null, "") = "" ObjectUtil.defaultIfNull(null, "zz") = "zz" ObjectUtil.defaultIfNull("abc", *) = "abc" ObjectUtil.defaultIfNull(Boolean.TRUE, *) = Boolean.TRUE
T
- 对象类型object
- 被检查对象,可能为null
defaultValue
- 被检查对象为null
返回的默认值,可以为null
null
返回默认值,否则返回原值public static <T> T defaultIfNull(T source, Supplier<? extends T> defaultValueSupplier)
null
, 返回默认值(由 defaultValueSupplier 提供);否则直接返回T
- 对象类型source
- 被检查对象defaultValueSupplier
- 默认值提供者null
返回默认值,否则返回自定义handle处理后的返回值NullPointerException
- defaultValueSupplier == null
时,抛出public static <T> T defaultIfNull(T source, Function<T,? extends T> defaultValueSupplier)
null
, 返回默认值(由 defaultValueSupplier 提供);否则直接返回T
- 对象类型source
- 被检查对象defaultValueSupplier
- 默认值提供者null
返回默认值,否则返回自定义handle处理后的返回值NullPointerException
- defaultValueSupplier == null
时,抛出@Deprecated public static <T> T defaultIfNull(Object source, Supplier<? extends T> handle, T defaultValue)
null
时,handle使用了str相关的方法引用会导致空指针问题null
返回默认值, 如果不为null 返回自定义handle处理后的返回值T
- 被检查对象为null
返回默认值,否则返回自定义handle处理后的返回值source
- Object 类型对象handle
- 非空时自定义的处理方法defaultValue
- 默认为空的返回值public static <T,R> T defaultIfNull(R source, Function<R,? extends T> handle, T defaultValue)
null
返回默认值, 如果不为null 返回自定义handle处理后的返回值T
- 被检查对象为null
返回默认值,否则返回自定义handle处理后的返回值R
- 被检查的对象类型source
- Object 类型对象handle
- 非空时自定义的处理方法defaultValue
- 默认为空的返回值@Deprecated public static <T> T defaultIfEmpty(String str, Supplier<? extends T> handle, T defaultValue)
null
时,handle使用了str相关的方法引用会导致空指针问题null
或者""返回默认值, 否则返回自定义handle处理后的返回值T
- 被检查对象为null
或者 ""返回默认值,否则返回自定义handle处理后的返回值str
- String 类型handle
- 自定义的处理方法defaultValue
- 默认为空的返回值public static <T> T defaultIfEmpty(String str, Function<CharSequence,? extends T> handle, T defaultValue)
null
或者""返回默认值, 否则返回自定义handle处理后的返回值T
- 被检查对象为null
或者 ""返回默认值,否则返回自定义handle处理后的返回值str
- String 类型handle
- 自定义的处理方法defaultValue
- 默认为空的返回值public static <T extends CharSequence> T defaultIfEmpty(T str, T defaultValue)
null
或者 "" 返回默认值
ObjectUtil.defaultIfEmpty(null, null) = null ObjectUtil.defaultIfEmpty(null, "") = "" ObjectUtil.defaultIfEmpty("", "zz") = "zz" ObjectUtil.defaultIfEmpty(" ", "zz") = " " ObjectUtil.defaultIfEmpty("abc", *) = "abc"
T
- 对象类型(必须实现CharSequence接口)str
- 被检查对象,可能为null
defaultValue
- 被检查对象为null
或者 ""返回的默认值,可以为null
或者 ""null
或者 ""返回默认值,否则返回原值public static <T extends CharSequence> T defaultIfEmpty(T str, Supplier<? extends T> defaultValueSupplier)
null
或 "" 时,返回默认值(由 defaultValueSupplier 提供);否则直接返回T
- 对象类型(必须实现CharSequence接口)str
- 被检查对象defaultValueSupplier
- 默认值提供者null
返回默认值,否则返回自定义handle处理后的返回值NullPointerException
- defaultValueSupplier == null
时,抛出public static <T extends CharSequence> T defaultIfEmpty(T str, Function<T,? extends T> defaultValueSupplier)
null
或 "" 时,返回默认值(由 defaultValueSupplier 提供);否则直接返回T
- 对象类型(必须实现CharSequence接口)str
- 被检查对象defaultValueSupplier
- 默认值提供者null
返回默认值,否则返回自定义handle处理后的返回值NullPointerException
- defaultValueSupplier == null
时,抛出public static <T extends CharSequence> T defaultIfBlank(T str, T defaultValue)
null
或者""或者空白符返回默认值
ObjectUtil.defaultIfBlank(null, null) = null ObjectUtil.defaultIfBlank(null, "") = "" ObjectUtil.defaultIfBlank("", "zz") = "zz" ObjectUtil.defaultIfBlank(" ", "zz") = "zz" ObjectUtil.defaultIfBlank("abc", *) = "abc"
T
- 对象类型(必须实现CharSequence接口)str
- 被检查对象,可能为null
defaultValue
- 被检查对象为null
或者 ""或者空白符返回的默认值,可以为null
或者 ""或者空白符null
或者 ""或者空白符返回默认值,否则返回原值public static <T extends CharSequence> T defaultIfBlank(T str, Supplier<? extends T> defaultValueSupplier)
null
或 "" 或 空白字符串时,返回默认值(由 defaultValueSupplier 提供);否则直接返回T
- 对象类型(必须实现CharSequence接口)str
- 被检查对象defaultValueSupplier
- 默认值提供者null
返回默认值,否则返回自定义handle处理后的返回值NullPointerException
- defaultValueSupplier == null
时,抛出public static <T extends CharSequence> T defaultIfBlank(T str, Function<T,? extends T> defaultValueSupplier)
null
或 "" 或 空白字符串时,返回默认值(由 defaultValueSupplier 提供);否则直接返回T
- 对象类型(必须实现CharSequence接口)str
- 被检查对象defaultValueSupplier
- 默认值提供者null
返回默认值,否则返回自定义handle处理后的返回值NullPointerException
- defaultValueSupplier == null
时,抛出public static <T> T clone(T obj)
null
T
- 对象类型obj
- 被克隆对象public static <T> T cloneIfPossible(T obj)
T
- 对象类型obj
- 对象public static <T> T cloneByStream(T obj)
T
- 对象类型obj
- 被克隆对象UtilException
- IO异常和ClassNotFoundException封装public static <T> byte[] serialize(T obj)
T
- 对象类型obj
- 要被序列化的对象public static <T> T deserialize(byte[] bytes, Class<?>... acceptClasses)
注意!!! 此方法不会检查反序列化安全,可能存在反序列化漏洞风险!!!
T
- 对象类型bytes
- 反序列化的字节码acceptClasses
- 白名单的类public static boolean isBasicType(Object object)
object
- 被检查对象,null
返回false
ClassUtil.isBasicType(Class)
public static boolean isValidIfNumber(Object obj)
obj
- 被检查类型public static <T extends Comparable<? super T>> int compare(T c1, T c2)
null
安全的对象比较,null
对象排在末尾T
- 被比较对象类型c1
- 对象1,可以为null
c2
- 对象2,可以为null
Comparator.compare(Object, Object)
public static <T extends Comparable<? super T>> int compare(T c1, T c2, boolean nullGreater)
null
安全的对象比较T
- 被比较对象类型c1
- 对象1,可以为null
c2
- 对象2,可以为null
nullGreater
- 当被比较对象为null时是否排在前面Comparator.compare(Object, Object)
public static Class<?> getTypeArgument(Object obj)
obj
- 被检查的对象Class
public static Class<?> getTypeArgument(Object obj, int index)
obj
- 被检查的对象index
- 泛型类型的索引号,即第几个泛型类型Class
public static String toString(Object obj)
1、null转为"null" 2、调用Convert.toStr(Object)转换
obj
- Bean对象public static int emptyCount(Object... objs)
null
或空对象,通过isEmpty(Object)
判断元素objs
- 被检查的对象,一个或者多个null
的数量public static boolean hasNull(Object... objs)
null
对象,通过isNull(Object)
判断元素objs
- 被检查对象ArrayUtil.hasNull(Object[])
public static boolean hasEmpty(Object... objs)
null
或空对象,通过isEmpty(Object)
判断元素objs
- 被检查对象ArrayUtil.hasEmpty(Object...)
public static boolean isAllEmpty(Object... objs)
null
或空对象,通过isEmpty(Object)
判断元素objs
- 被检查的对象,一个或者多个public static boolean isAllNotEmpty(Object... objs)
null
或空对象,通过isEmpty(Object)
判断元素objs
- 被检查的对象,一个或者多个Copyright © 2024. All rights reserved.