类 X
java.lang.Object
me.codeplayer.util.X
通用公共工具类
此类全为静态方法,请使用静态方法的形式调用
由于均为静态方法,所以类名尽可能地短,以免干扰逻辑可读性
并且工具类会经常被调用,类名短,也方便开发人员编写。
此类全为静态方法,请使用静态方法的形式调用
由于均为静态方法,所以类名尽可能地短,以免干扰逻辑可读性
并且工具类会经常被调用,类名短,也方便开发人员编写。
- 作者:
- Ready
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明static <T> T将指定泛型对象进行泛型擦除,并转换为对应的泛型声明static <T> T将指定的值根据指定的表达式解析,并返回解析后的结果static <T extends Collection<?>>
TemptyToNull(T c) 尝试将空集合转为 nullstatic <T> T[]emptyToNull(T[] array) 尝试将空数组转为 nullstatic <T> inteqLax(T inputVal, T currentVal) 宽松地比较两个实体的指定属性值是否相等,并返回比较结果static <T,R> int 宽松地比较两个实体的指定属性值是否相等static <T,R> R expectEquals(T input, T current, Function<T, R> getter, BiConsumer<T, R> setIfNull) 期望两个实体的指定属性值是相等的,并返回该值。static <T,R> R expectEquals(T input, T current, Function<T, R> getter, BiConsumer<T, R> setIfNull, Object error) 期望两个实体的指定属性值是相等的,并返回该值。static <T,R> R expectEqualsBasedOld(T input, T old, Function<T, R> getter, Consumer<R> setOldIfInputNul) 期望两个实体的指定属性值是相等的,并返回该值。static <T,R> R expectEqualsBasedOld(T input, T old, Function<T, R> getter, Consumer<R> setOldIfInputNull, Object error) 期望两个实体的指定属性值是相等的,并返回该值。static StringexpectNotEmpty(String v1, String v2) 从指定的多个字符串依次检测并选取第一个不为空字符串的值,否则返回空字符串""static StringexpectNotEmpty(String v1, String v2, String v3) 从指定的多个字符串依次检测并选取第一个不为空字符串的值,否则返回空字符串""static StringexpectNotEmpty(String v1, String v2, String v3, String v4) 从指定的多个字符串依次检测并选取第一个不为空字符串的值,否则返回空字符串""static <T> TexpectNotNull(T v1, T v2) 从指定的多个值依次检测并选取第一个不为null的值static <T> TexpectNotNull(T v1, T v2, T v3) 从指定的多个值依次检测并选取第一个不为null的值static <T> TexpectNotNull(T v1, T v2, T v3, T v4) 从指定的多个值依次检测并选取第一个不为null的值static intgetCapacity(int capacity) 根据需要存储的元素个数确定HashMap等Map接口实现类的初始容量(使用默认的负载因子:0.75)static intgetCapacity(int capacity, float loadFactor) 根据需要存储的元素个数确定HashMap等Map接口实现类的初始容量static <T> T当指定 val 为 null 时,则返回替补other中的返回值,否则返回 val 本身static org.slf4j.Logger获取调用此方法的当前类的日志处理器(Logger)
该 Logger 使用 slf4j APIstatic <T> TgetRecursively(T root, Function<T, T> recursion, Predicate<T> untilMatch) 递归地调用对象的指定方法,直到返回的对象满足指定条件(如果root对象本身符合条件就返回其本身)static boolean判断指定的对象是否为空
如果对象(或其 toString() 返回值)为null、空字符串、空格字符串,则返回true
注意:本方法会先去除字符串两边的空格,再判断static boolean判断指定的字符串是否为null或去空格后为空字符串,如果是则返回truestatic boolean判断指定的对象是否为空
如果对象(或其 toString() 返回值)为 null、空字符串,则返回 true
注意:本方法不会去除字符串两边的空格,如果想去除字符串两边的空格后再进行判断,可以使用 isBlank() 方法static boolean判断指定的字符串是否为空
如果字符串为null、空字符串,则返回true
注意:本方法不会去除字符串两边的空格,如果想去除字符串两边的空格后再进行判断,可以使用isBlank()方法static <T,R> boolean 检测指定的对象在经过指定的转换后,是否符合指定的条件static booleanisMutex(boolean a, boolean b) 指示两个等价于 boolean 值的条件是否互斥(若一个为 true,则另一个必定为 false)static booleanisValid(byte[] array) 判断指定byte数组是否有效。static booleanisValid(char[] array) 判断指定char数组是否有效。static booleanisValid(double[] array) 判断指定double数组是否有效。static booleanisValid(float[] array) 判断指定float数组是否有效。static booleanisValid(int[] array) 判断指定int数组是否有效。static booleanisValid(long[] array) 判断指定long数组是否有效。static boolean判断指定Boolean值是否有效。static booleanisValid(CharSequence sequence) 判断指定的字符串序列是否有效。static boolean判断指定的数值对象是否有效。static boolean判断指定对象是否无效。static boolean判断指定的对象数组是否有效。static booleanisValid(Collection<?> collection) 判断指定的Collection对象是否有效。static boolean判断指定的Map对象是否有效。static <T,R> R 对指定的对象执行指定的mapper转换,安全地获得期望的转换结果static <T,R, E> E 对指定的对象执行mapper、nestedMapper双重转换,安全地获得期望的转换结果static <T,R> R 尝试将数组 args 中的元素依次应用到 mapper 中,并返回第一个符合matcher条件的返回值static <T,R> R 对指定的对象执行执行的mapper转换,安全地获得期望的转换结果static <T,R> R mapElseGet(T obj, Function<? super T, R> mapper, Supplier<R> other) 对指定的对象执行执行的mapper转换,安全地获得期望的转换结果static <T> boolean指示指定的参数是否都符合指定的matcher条件static booleanmatchAllOrNone(boolean a, boolean b) 指示两个条件是否都成立,或者都不成立static booleanmatchAllOrNone(boolean a, boolean b, boolean c) 指示3个等价于 boolean 值的条件要么都成立,要么都不成立static <T> boolean指示指定的参数是否至少有一个符合指定的matcher条件static intsize(CharSequence cs) 返回字符序列的长度,如果参数为null,则返回 0static int返回数组的长度,如果参数为null,则返回 0static intsize(Collection<?> c) 返回集合的长度,如果参数为null,则返回 0static int返回 Map 的长度,如果参数为null,则返回 0static intsizeOfArray(Object array) 返回数组的长度,如果参数为null,则返回 0static String去除字符串两端的空格
如果字符串为null、空字符串""、空白字符串,这返回HTML的空格符" "static <E> E尝试拆箱可能由Supplier接口包装的实体对象static <T> void使用obj执行指定的调用static <T> void使用obj执行指定的调用static RuntimeExceptionwrapException(String msg, boolean forceUseMsg, Throwable ex) 将指定的异常信息封装为运行时异常static RuntimeExceptionwrapException(String msg, boolean forceUseMsg, Throwable ex, Throwable cause) 将指定的异常信息封装为运行时异常static RuntimeExceptionwrapException(String msg, Throwable ex) 将指定的异常信息封装为运行时异常static RuntimeExceptionwrapException(String msg, Throwable ex, Throwable cause) 将指定的异常信息封装为运行时异常
-
构造器详细资料
-
X
public X()
-
-
方法详细资料
-
getLogger
public static org.slf4j.Logger getLogger()获取调用此方法的当前类的日志处理器(Logger)
该 Logger 使用 slf4j API -
isEmpty
判断指定的字符串是否为空
如果字符串为null、空字符串,则返回true
注意:本方法不会去除字符串两边的空格,如果想去除字符串两边的空格后再进行判断,可以使用isBlank()方法 -
isEmpty
判断指定的对象是否为空
如果对象(或其 toString() 返回值)为 null、空字符串,则返回 true
注意:本方法不会去除字符串两边的空格,如果想去除字符串两边的空格后再进行判断,可以使用 isBlank() 方法- 参数:
obj- 指定的对象
-
isBlank
判断指定的字符串是否为null或去空格后为空字符串,如果是则返回true- 参数:
str- 指定的字符串对象
-
isBlank
判断指定的对象是否为空
如果对象(或其 toString() 返回值)为null、空字符串、空格字符串,则返回true
注意:本方法会先去除字符串两边的空格,再判断- 参数:
obj- 指定的对象- 另请参阅:
-
expectNotNull
public static <T> T expectNotNull(T v1, T v2, T v3, T v4) 从指定的多个值依次检测并选取第一个不为null的值 -
expectNotNull
public static <T> T expectNotNull(T v1, T v2, T v3) 从指定的多个值依次检测并选取第一个不为null的值 -
expectNotNull
public static <T> T expectNotNull(T v1, T v2) 从指定的多个值依次检测并选取第一个不为null的值 -
expectNotEmpty
从指定的多个字符串依次检测并选取第一个不为空字符串的值,否则返回空字符串"" -
expectNotEmpty
从指定的多个字符串依次检测并选取第一个不为空字符串的值,否则返回空字符串"" -
expectNotEmpty
从指定的多个字符串依次检测并选取第一个不为空字符串的值,否则返回空字符串"" -
isValid
判断指定Boolean值是否有效。true即为有效。- 参数:
b- 指定的Boolean对象
-
isValid
判断指定的数值对象是否有效。如果参数为null或 数值等于0,则为无效;其他均为有效。- 参数:
number- 指定的
-
isValid
判断指定的字符串序列是否有效。如果参数为null或空字符串"",则为无效;其他均为有效。- 参数:
sequence- 指定的字符串序列对象
-
isValid
判断指定的Map对象是否有效。如果参数为null或map.size() == 0,则为无效,其他均为有效。- 参数:
map- 指定的映射集合对象
-
isValid
判断指定的Collection对象是否有效。如果参数为null或collection.size() == 0,则为无效,其他均为有效。- 参数:
collection- 指定的集合对象
-
isValid
public static boolean isValid(byte[] array) 判断指定byte数组是否有效。如果参数为null或array.length == 0,则为无效,其他均为有效。- 参数:
array- 指定的byte数组
-
isValid
public static boolean isValid(int[] array) 判断指定int数组是否有效。如果参数为null或array.length == 0,则为无效,其他均为有效。- 参数:
array- 指定的int数组
-
isValid
public static boolean isValid(long[] array) 判断指定long数组是否有效。如果参数为null或array.length == 0,则为无效,其他均为有效。- 参数:
array- 指定的long数组
-
isValid
public static boolean isValid(char[] array) 判断指定char数组是否有效。如果参数为null或array.length == 0,则为无效,其他均为有效。- 参数:
array- 指定的char数组
-
isValid
public static boolean isValid(float[] array) 判断指定float数组是否有效。如果参数为null或array.length == 0,则为无效,其他均为有效。- 参数:
array- 指定的float数组
-
isValid
public static boolean isValid(double[] array) 判断指定double数组是否有效。如果参数为null或array.length == 0,则为无效,其他均为有效。- 参数:
array- 指定的double数组
-
isValid
判断指定的对象数组是否有效。如果参数为null或array.length == 0,则为无效,其他均为有效。- 参数:
array- 指定的对象数组
-
isValid
判断指定对象是否无效。只有以下情况视为无效,其他均为有效。
无效的参数对象arg的定义如下(按照判断顺序排序):
1.arg == null
2.如果arg是字符序列对象,去空格后,arg.length() == 0
3.如果arg是数值对象,去空格后,值 == 0
4.如果arg是映射集合(Map)对象,arg.size() == 0
5.如果arg是集合(Collection)对象,arg.size() == 0
6.如果arg是数组(Array)对象,arg.length == 0
7.如果arg是布尔(Boolean)对象,arg 等价于 false- 返回:
- 上述无效的情况返回
false,其他情况均返回true
-
decode
将指定的值根据指定的表达式解析,并返回解析后的结果- 参数:
input- 指定的值expressions- 指定的表达式,例如:("1", "男", "0", "女")方法将会将指定属性的值(value),与表达式进行匹配,形如:if(value 等于 "1"){ return "男"; }else if(value 等于 "0"){ return "女"; }else{ return value; }本方法接收的表达式参数个数可以为奇数,例如:
(6, "星期六", 7, "星期天", "工作日"),相当于:if(value 等于 6){ return "星期六"; }else if(value 等于 7){ return "星期天"; }else{ return "工作日"; }
-
trim4Html
去除字符串两端的空格
如果字符串为null、空字符串""、空白字符串,这返回HTML的空格符" " -
getCapacity
public static int getCapacity(int capacity) 根据需要存储的元素个数确定HashMap等Map接口实现类的初始容量(使用默认的负载因子:0.75)- 参数:
capacity- 需要存储的元素个数
-
getCapacity
public static int getCapacity(int capacity, float loadFactor) 根据需要存储的元素个数确定HashMap等Map接口实现类的初始容量- 参数:
capacity- 需要存储的元素个数loadFactor- 负载因子,必须介于0-1之间,如果不在此范围,内部也不检测,后果自负
-
castType
将指定泛型对象进行泛型擦除,并转换为对应的泛型声明 -
use
使用obj执行指定的调用- 参数:
obj- 指定的对象,可以为 nullconsumer- 指定的调用,如果obj为 null,则不执行该调用
-
use
使用obj执行指定的调用- 参数:
obj- 指定的对象,可以为 nullfilter- 过滤器,只有 {code obj} 满足该条件,才会执行consumerconsumer- 指定的调用,如果obj为 null,则不执行该调用
-
map
对指定的对象执行指定的mapper转换,安全地获得期望的转换结果- 参数:
obj- 指定的对象,可以为 nullmapper- 转换器- 返回:
- 如果
obj == null则返回null,否则返回转换后的结果 - 从以下版本开始:
- 2.3.0
-
map
public static <T,R, E mapE> (@Nullable T obj, Function<? super T, R> mapper, Function<R, E> nestedMapper) 对指定的对象执行mapper、nestedMapper双重转换,安全地获得期望的转换结果- 参数:
obj- 指定的对象,可以为 nullmapper- 转换器nestedMapper- 嵌套的二次转换器- 返回:
- 如果
obj == null则返回 null,否则返回转换后的结果 - 从以下版本开始:
- 2.6
-
mapElse
对指定的对象执行执行的mapper转换,安全地获得期望的转换结果- 参数:
obj- 指定的对象,可以为 nullmapper- 转换器other- 如果转换后的值为null,则返回该参数值- 返回:
- 如果
obj == null则返回null,否则返回转换后的结果 - 从以下版本开始:
- 2.6
-
mapElseGet
对指定的对象执行执行的mapper转换,安全地获得期望的转换结果- 参数:
obj- 指定的对象,可以为 nullmapper- 转换器other- 如果转换后的值为null,则返回该备用对象的返回值- 返回:
- 如果
obj == null则返回null,否则返回转换后的结果 - 从以下版本开始:
- 2.6
-
tryUnwrap
尝试拆箱可能由Supplier接口包装的实体对象- 返回:
- 如果指定参数实现了
Supplier接口,则调用 get() 方法 并返回其值;否则直接返回 该对象本身 - 从以下版本开始:
- 2.3.0
-
getElse
当指定 val 为 null 时,则返回替补other中的返回值,否则返回 val 本身- 从以下版本开始:
- 2.6
-
isMatch
public static <T,R> boolean isMatch(@Nullable T bean, Function<? super T, R> mapper, Predicate<? super R> matcher) 检测指定的对象在经过指定的转换后,是否符合指定的条件- 参数:
bean- 指定的对象mapper- 转换器matcher- 条件判断器- 从以下版本开始:
- 2.3.0
-
wrapException
public static RuntimeException wrapException(@Nullable String msg, boolean forceUseMsg, @Nullable Throwable ex, @Nullable Throwable cause) 将指定的异常信息封装为运行时异常- 参数:
forceUseMsg- 如果指定的异常是运行时异常,且msg不为null;此时是否还需要包装一个IllegalArgumentException来确保强制使用传入的msg作为异常信息- 返回:
- 如果异常
ex为 null,或者不是运行时异常,则自动将其封装为IllegalArgumentException;否则返回对应的运行时异常 - 从以下版本开始:
- 2.3.0
-
wrapException
public static RuntimeException wrapException(@Nullable String msg, @Nullable Throwable ex, @Nullable Throwable cause) 将指定的异常信息封装为运行时异常注意:如果指定的异常是运行时异常;此时不会使用传入的
msg- 返回:
- 如果异常
ex为 null,或者不是运行时异常,则自动将其封装为IllegalArgumentException;否则返回对应的运行时异常 - 从以下版本开始:
- 2.3.0
-
wrapException
public static RuntimeException wrapException(@Nullable String msg, boolean forceUseMsg, @Nullable Throwable ex) 将指定的异常信息封装为运行时异常- 参数:
forceUseMsg- 如果指定的异常是运行时异常,且msg不为null;此时是否还需要包装一个IllegalArgumentException来确保强制使用传入的msg作为异常信息- 返回:
- 如果异常
ex为 null,或者不是运行时异常,则自动将其封装为IllegalArgumentException;否则返回对应的运行时异常 - 从以下版本开始:
- 2.3.0
-
wrapException
将指定的异常信息封装为运行时异常- 返回:
- 如果异常
ex为 null,或者不是运行时异常,则自动将其封装为IllegalArgumentException;否则返回对应的运行时异常 - 从以下版本开始:
- 2.3.0
-
getRecursively
递归地调用对象的指定方法,直到返回的对象满足指定条件(如果root对象本身符合条件就返回其本身)- 从以下版本开始:
- 2.8
-
eqLax
宽松地比较两个实体的指定属性值是否相等,并返回比较结果- 返回:
- 相等 -> 1;如果有一方为 null -> 0;否则返回 -1
- 从以下版本开始:
- 2.8
-
eqLax
宽松地比较两个实体的指定属性值是否相等- 返回:
- 相等 -> 1;如果有一方为 null -> 0;否则返回 -1
- 从以下版本开始:
- 2.8
-
expectEquals
public static <T,R> R expectEquals(@Nullable T input, @Nullable T current, Function<T, R> getter, BiConsumer<T, throws IllegalArgumentExceptionR> setIfNull, @Nullable Object error) 期望两个实体的指定属性值是相等的,并返回该值。 本方法允许其中一个属性值为 null,并会自动使用另一方的值进行填补。如果两者都不为 null 且不相等,则直接抛出非法参数异常- 返回:
- 返回非空的属性值。如果两个属性值相等,优先返回
current的属性值 - 抛出:
IllegalArgumentException- 从以下版本开始:
- 2.8
-
expectEquals
public static <T,R> R expectEquals(@Nullable T input, @Nullable T current, Function<T, R> getter, BiConsumer<T, throws IllegalArgumentExceptionR> setIfNull) 期望两个实体的指定属性值是相等的,并返回该值。 本方法允许其中一个属性值为 null,并会自动使用另一方的值进行填补。如果两者都不为 null 且不相等,则直接抛出非法参数异常- 返回:
- 返回非空的属性值。如果两个属性值相等,优先返回
current的属性值 - 抛出:
IllegalArgumentException- 从以下版本开始:
- 2.8
-
expectEqualsBasedOld
public static <T,R> R expectEqualsBasedOld(@Nullable T input, @Nullable T old, Function<T, R> getter, Consumer<R> setOldIfInputNull, @Nullable Object error) throws IllegalArgumentException期望两个实体的指定属性值是相等的,并返回该值。 如果两者不相等且input为 null,则会自动使用old进行赋值操作。如果两者都不为 null 且不相等,则直接抛出非法参数异常- 返回:
- 返回
old的属性值 - 抛出:
IllegalArgumentException- 从以下版本开始:
- 2.8
-
expectEqualsBasedOld
public static <T,R> R expectEqualsBasedOld(@Nullable T input, @Nullable T old, Function<T, R> getter, Consumer<R> setOldIfInputNul) throws IllegalArgumentException期望两个实体的指定属性值是相等的,并返回该值。 如果两者不相等且input为 null,则会自动使用old进行赋值操作。如果两者都不为 null 且不相等,则直接抛出非法参数异常- 返回:
- 返回
old的属性值 - 抛出:
IllegalArgumentException- 从以下版本开始:
- 2.8
-
size
返回集合的长度,如果参数为null,则返回 0- 从以下版本开始:
- 2.8
-
size
返回 Map 的长度,如果参数为null,则返回 0- 从以下版本开始:
- 2.8
-
size
返回数组的长度,如果参数为null,则返回 0- 从以下版本开始:
- 2.8
-
sizeOfArray
返回数组的长度,如果参数为null,则返回 0- 抛出:
IllegalArgumentException- 如果array不是数组(可以为null)- 从以下版本开始:
- 2.8
-
size
返回字符序列的长度,如果参数为null,则返回 0- 从以下版本开始:
- 2.8
-
matchAllOrNone
public static boolean matchAllOrNone(boolean a, boolean b) 指示两个条件是否都成立,或者都不成立- 返回:
a == b
-
matchAllOrNone
public static boolean matchAllOrNone(boolean a, boolean b, boolean c) 指示3个等价于 boolean 值的条件要么都成立,要么都不成立 -
isMutex
public static boolean isMutex(boolean a, boolean b) 指示两个等价于 boolean 值的条件是否互斥(若一个为 true,则另一个必定为 false) -
matchAny
指示指定的参数是否至少有一个符合指定的matcher条件 -
matchAll
指示指定的参数是否都符合指定的matcher条件 -
emptyToNull
public static <T> T[] emptyToNull(T[] array) 尝试将空数组转为 null -
emptyToNull
尝试将空集合转为 null -
emptyToNull
尝试将空 Map 集合转为 null -
mapAny
public static <T,R> R mapAny(Function<? super T, ? extends R> mapper, Predicate<R> matcher, T... args) 尝试将数组 args 中的元素依次应用到 mapper 中,并返回第一个符合matcher条件的返回值
-