diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/func/PredicateUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/func/PredicateUtil.java index 9cc8951c9..9c2b74740 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/func/PredicateUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/func/PredicateUtil.java @@ -24,11 +24,24 @@ import java.util.function.Predicate; */ public class PredicateUtil { + /** + * 强制转换 {@code Predicate} 为 {@code Predicate}. + * + * @param 参数类型 + * @param predicate {@link Predicate} + * @return 强转后的{@link Predicate} + * @since 6.0.0 + */ + @SuppressWarnings("unchecked") + static Predicate coerce(final Predicate predicate) { + return (Predicate) predicate; + } + /** * 反向条件 * * @param predicate 条件 - * @param 参数类型 + * @param 参数类型 * @return 反向条件 {@link Predicate} */ public static Predicate negate(final Predicate predicate) { diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/util/ObjUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/util/ObjUtil.java index 8882e2c22..92fd2ef7f 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/util/ObjUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/util/ObjUtil.java @@ -221,7 +221,7 @@ public class ObjUtil { *
  • {@code null}:默认返回{@code true};
  • *
  • 数组:等同于{@link ArrayUtil#isEmpty(Object)};
  • *
  • {@link CharSequence}:等同于{@link CharSequenceUtil#isEmpty(CharSequence)};
  • - *
  • {@link Collection}:等同于{@link CollUtil#isEmpty(Collection)};
  • + *
  • {@link Collection}:等同于{@link CollUtil#isEmpty(Collection)};
  • *
  • {@link Map}:等同于{@link MapUtil#isEmpty(Map)};
  • *
  • * {@link Iterator}或{@link Iterable}:等同于{@link IterUtil#isEmpty(Iterator)}、 @@ -329,6 +329,19 @@ public class ObjUtil { return defaultSupplier.get(); } + /** + * 如果指定的对象不为 {@code null},则应用提供的映射函数并返回结果,否则返回 {@code null}。 + * + * @param source 要检查的对象 + * @param handler 要应用的映射函数 + * @param 输入对象的类型 + * @param 映射函数的返回类型 + * @return 映射函数的结果, 如果输入对象为 null,则返回 null + */ + public static R apply(final T source, final Function handler) { + return defaultIfNull(source, handler, null); + } + /** * 如果给定对象不为{@code null} 返回自定义handler处理后的结果,否则返回默认值 *