|
@@ -353,7 +353,7 @@ public final class ObjectUtils {
|
|
|
* 返回不为空的对象(如果第一个对象为空,则返回第二个对象)
|
|
|
*
|
|
|
* @param object 目标对象
|
|
|
- * @param supplier 替换对象提供方法
|
|
|
+ * @param supplier 默认对象提供函数
|
|
|
* @param <T> 对象类型泛型
|
|
|
* @return 返回对象
|
|
|
*/
|
|
@@ -365,7 +365,7 @@ public final class ObjectUtils {
|
|
|
* 返回不为空的对象(如果第一个对象为空,则返回第二个对象)
|
|
|
*
|
|
|
* @param object 目标对象
|
|
|
- * @param function 目标对象方法
|
|
|
+ * @param function 对象处理函数
|
|
|
* @param <T> 目标对象类型泛型
|
|
|
* @param <R> 返回对象类型泛型
|
|
|
* @return 返回对象
|
|
@@ -378,8 +378,8 @@ public final class ObjectUtils {
|
|
|
* 返回不为空的对象(如果第一个对象为空,则返回第二个对象)
|
|
|
*
|
|
|
* @param object 目标对象
|
|
|
- * @param function 目标对象方法
|
|
|
- * @param supplier 替换对象提供方法
|
|
|
+ * @param function 对象处理函数
|
|
|
+ * @param supplier 默认对象提供函数
|
|
|
* @param <T> 目标对象类型泛型
|
|
|
* @param <R> 返回对象类型泛型
|
|
|
* @return 返回对象
|
|
@@ -591,7 +591,7 @@ public final class ObjectUtils {
|
|
|
* 判断数组是否为空,如果数组为空则调用适配函数并返回
|
|
|
*
|
|
|
* @param array 对象数组
|
|
|
- * @param supplier 对象数组适配函数
|
|
|
+ * @param supplier 默认数组提供函数
|
|
|
* @param <T> 对象类型
|
|
|
* @return 对象数组
|
|
|
*/
|
|
@@ -602,21 +602,35 @@ public final class ObjectUtils {
|
|
|
/**
|
|
|
* 判断数组是否为空,如果集合非空则使用适配函数
|
|
|
*
|
|
|
- * @param array 对象数组
|
|
|
- * @param adapter 对象数组适配函数
|
|
|
- * @param <T> 对象类型
|
|
|
- * @param <R> 目标类型
|
|
|
+ * @param array 对象数组
|
|
|
+ * @param function 数组处理函数
|
|
|
+ * @param <T> 对象类型
|
|
|
+ * @param <R> 目标类型
|
|
|
+ * @return 对象数组
|
|
|
+ */
|
|
|
+ public static <T, R> R[] ifEmpty(T[] array, @NonNull Function<T[], R[]> function) {
|
|
|
+ return isEmpty(array) ? null : function.apply(array);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 判断数组是否为空,如果集合非空则使用适配函数
|
|
|
+ *
|
|
|
+ * @param array 对象数组
|
|
|
+ * @param function 数组处理函数
|
|
|
+ * @param supplier 默认数组提供函数
|
|
|
+ * @param <T> 对象类型
|
|
|
+ * @param <R> 目标类型
|
|
|
* @return 对象数组
|
|
|
*/
|
|
|
- public static <T, R> R[] ifEmpty(T[] array, @NonNull Function<T[], R[]> adapter) {
|
|
|
- return isEmpty(array) ? null : adapter.apply(array);
|
|
|
+ public static <T, R> R[] ifEmpty(T[] array, @NonNull Function<T[], R[]> function, @NonNull Supplier<R[]> supplier) {
|
|
|
+ return isEmpty(array) ? supplier.get() : ifEmpty(function.apply(array), supplier);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 判断集合是否为空,如果集合为空则调用适配函数并返回
|
|
|
*
|
|
|
* @param collection 对象集合
|
|
|
- * @param supplier 对象集合适配函数
|
|
|
+ * @param supplier 默认集合提供函数
|
|
|
* @param <T> 对象类型
|
|
|
* @param <C> 集合类型
|
|
|
* @return 对象集合
|
|
@@ -629,14 +643,31 @@ public final class ObjectUtils {
|
|
|
* 判断集合是否为空,如果集合非空则使用适配函数
|
|
|
*
|
|
|
* @param collection 对象集合
|
|
|
- * @param adapter 对象集合适配函数
|
|
|
+ * @param function 集合处理函数
|
|
|
+ * @param <T> 对象类型
|
|
|
+ * @param <R> 目标类型
|
|
|
+ * @param <C> 集合类型
|
|
|
+ * @return 对象集合
|
|
|
+ */
|
|
|
+ public static <T, R, C extends Collection<T>> List<R> ifEmpty(C collection,
|
|
|
+ @NonNull Function<C, List<R>> function) {
|
|
|
+ return isEmpty(collection) ? Collections.emptyList() : function.apply(collection);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 判断集合是否为空,如果集合非空则使用适配函数
|
|
|
+ *
|
|
|
+ * @param collection 对象集合
|
|
|
+ * @param function 集合处理函数
|
|
|
+ * @param supplier 默认集合提供函数
|
|
|
* @param <T> 对象类型
|
|
|
* @param <R> 目标类型
|
|
|
* @param <C> 集合类型
|
|
|
* @return 对象集合
|
|
|
*/
|
|
|
- public static <T, R, C extends Collection<T>> List<R> ifEmpty(C collection, @NonNull Function<C, List<R>> adapter) {
|
|
|
- return isEmpty(collection) ? Collections.emptyList() : adapter.apply(collection);
|
|
|
+ public static <T, R, C extends Collection<T>> List<R> ifEmpty(C collection, @NonNull Function<C, List<R>> function,
|
|
|
+ @NonNull Supplier<List<R>> supplier) {
|
|
|
+ return isEmpty(collection) ? supplier.get() : ifEmpty(function.apply(collection), supplier);
|
|
|
}
|
|
|
|
|
|
/**
|