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} *