From 14d7a53147935e9ab1f7646ab3fbc4eab333150c Mon Sep 17 00:00:00 2001 From: ZhouXY108 Date: Sat, 13 May 2023 13:16:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plusone/commons/util/OptionalUtil.java | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/src/main/java/xyz/zhouxy/plusone/commons/util/OptionalUtil.java b/src/main/java/xyz/zhouxy/plusone/commons/util/OptionalUtil.java index e024c35..ce27d79 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/util/OptionalUtil.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/util/OptionalUtil.java @@ -38,26 +38,83 @@ import javax.annotation.Nullable; */ public class OptionalUtil { + /** + * 将包装类 {@link Integer} 转为 {@link OptionalInt}(not null)。 + *

+ * 包装类为 {@code null} 表示值的缺失,转为 {@link OptionalInt} 后,由 + * {@link OptionalInt#empty()} 表示值的缺失。 + *

+ * + * @param value 包装对象 + * @return {@link OptionalInt} 实例 + */ public static OptionalInt optionalOf(@Nullable Integer value) { return value != null ? OptionalInt.of(value) : OptionalInt.empty(); } + /** + * 将 {@code Optional} 转为 {@link OptionalInt}。 + *

+ * {@code Optional} 将整数包装了两次,改为使用 {@link OptionalInt} 包装其中的整数数据。 + *

+ * + * @param value 包装对象 + * @return {@link OptionalInt} 实例 + */ public static OptionalInt toOptionalInt(Optional objectOptional) { return optionalOf(objectOptional.orElse(null)); } + /** + * 将包装类 {@link Long} 转为 {@link OptionalLong}(not null)。 + *

+ * 包装类为 {@code null} 表示值的缺失,转为 {@link OptionalLong} 后,由 + * {@link OptionalLong#empty()} 表示值的缺失。 + *

+ * + * @param value 包装对象 + * @return {@link OptionalLong} 实例 + */ public static OptionalLong optionalOf(@Nullable Long value) { return value != null ? OptionalLong.of(value) : OptionalLong.empty(); } + /** + * 将 {@code Optional} 转为 {@link OptionalLong}。 + *

+ * {@code Optional} 将整数包装了两次,改为使用 {@link OptionalLong} 包装其中的整数数据。 + *

+ * + * @param value 包装对象 + * @return {@link OptionalLong} 实例 + */ public static OptionalLong toOptionalLong(Optional objectOptional) { return optionalOf(objectOptional.orElse(null)); } + /** + * 将包装类 {@link Double} 转为 {@link OptionalDouble}(not null)。 + *

+ * 包装类为 {@code null} 表示值的缺失,转为 {@link OptionalDouble} 后,由 + * {@link OptionalDouble#empty()} 表示值的缺失。 + *

+ * + * @param value 包装对象 + * @return {@link OptionalDouble} 实例 + */ public static OptionalDouble optionalOf(@Nullable Double value) { return value != null ? OptionalDouble.of(value) : OptionalDouble.empty(); } + /** + * 将 {@code Optional} 转为 {@link OptionalDouble}。 + *

+ * {@code Optional} 将整数包装了两次,改为使用 {@link OptionalDouble} 包装其中的整数数据。 + *

+ * + * @param value 包装对象 + * @return {@link OptionalDouble} 实例 + */ public static OptionalDouble toOptionalDouble(Optional objectOptional) { return optionalOf(objectOptional.orElse(null)); }