From 1d3cf0d1a72b38763c0dc5150991ebcfdd44ad90 Mon Sep 17 00:00:00 2001 From: Looly Date: Tue, 20 Sep 2022 18:58:30 +0800 Subject: [PATCH] add method --- CHANGELOG.md | 1 + .../src/main/java/cn/hutool/core/util/EnumUtil.java | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index de42089e3..f3cacd937 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ ### 🐣新特性 * 【core 】 StreamUtil.of方法新增对 Iterator 支持;StreamUtil.of(Iterable) 方法优化(pr#807@Gitee) * 【core 】 增加.wgt格式的MimeType(pr#2617@Github) +* 【core 】 EnumUtil.getBy增加带默认值重载(issue#I5RZU6@Gitee) ### 🐞Bug修复 * 【core 】 修复FileNameUtil.cleanInvalid无法去除换行符问题(issue#I5RMZV@Gitee) diff --git a/hutool-core/src/main/java/cn/hutool/core/util/EnumUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/EnumUtil.java index 018baa3dd..983939438 100644 --- a/hutool-core/src/main/java/cn/hutool/core/util/EnumUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/util/EnumUtil.java @@ -246,6 +246,19 @@ public class EnumUtil { return Arrays.stream(implClass.getEnumConstants()).filter(e -> condition.callWithRuntimeException(e).equals(value)).findAny().orElse(null); } + /** + * 通过 某字段对应值 获取 枚举,获取不到时为 {@code defaultEnum} + * + * @param condition 条件字段 + * @param value 条件字段值 + * @param defaultEnum 条件找不到则返回结果使用这个 + * @return 对应枚举 ,获取不到时为 {@code null} + * @since 5.8.8 + */ + public static , C> E getBy(Func1 condition, C value, E defaultEnum) { + return ObjectUtil.defaultIfNull(getBy(condition, value), defaultEnum); + } + /** * 通过 某字段对应值 获取 枚举中另一字段值,获取不到时为 {@code null} *