From c9ad39ab3a4c95b80bd8f0e71f518e671558a929 Mon Sep 17 00:00:00 2001 From: achao Date: Mon, 7 Feb 2022 21:20:16 +0800 Subject: [PATCH] =?UTF-8?q?Revert=20"AsyncUtil=E4=B8=8B=E5=A2=9E=E5=8A=A0g?= =?UTF-8?q?etOpt=E6=96=B9=E6=B3=95=EF=BC=8C=E7=94=A8=E4=BA=8E=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E5=A4=B1=E8=B4=A5=E6=97=B6=E6=8F=90=E4=BE=9B=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E5=80=BC=EF=BC=8C=E4=B9=9F=E8=83=BD=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=BC=82=E5=B8=B8;=E6=8B=93=E5=B1=95?= =?UTF-8?q?=E4=BA=86Opt.ofEmptyAble=E6=96=B9=E6=B3=95=EF=BC=8C=E4=BD=BF?= =?UTF-8?q?=E5=85=B6=E5=8F=AF=E4=BB=A5=E5=88=A4=E6=96=ADCollection?= =?UTF-8?q?=E4=B8=8B=E7=9A=84=E5=85=B6=E4=BB=96=E9=9B=86=E5=90=88"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 158290c38808044cc65c41a176db9ae9e55d9715. --- .../src/main/java/cn/hutool/core/lang/Opt.java | 11 +++++------ .../main/java/cn/hutool/core/thread/AsyncUtil.java | 13 ------------- .../java/cn/hutool/core/thread/AsyncUtilTest.java | 9 --------- 3 files changed, 5 insertions(+), 28 deletions(-) diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Opt.java b/hutool-core/src/main/java/cn/hutool/core/lang/Opt.java index 363d3a625..dad1b5cd0 100644 --- a/hutool-core/src/main/java/cn/hutool/core/lang/Opt.java +++ b/hutool-core/src/main/java/cn/hutool/core/lang/Opt.java @@ -24,12 +24,12 @@ */ package cn.hutool.core.lang; -import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.func.Func0; import cn.hutool.core.lang.func.VoidFunc0; import cn.hutool.core.util.StrUtil; -import java.util.Collection; +import java.util.List; import java.util.NoSuchElementException; import java.util.Objects; import java.util.Optional; @@ -101,19 +101,18 @@ public class Opt { } /** - * 返回一个包裹里{@code Collection}集合可能为空的{@code Opt},额外判断了集合内元素为空的情况 + * 返回一个包裹里{@code List}集合可能为空的{@code Opt},额外判断了集合内元素为空的情况 * * @param value 传入需要包裹的元素 * @param 包裹里元素的类型 * @return 一个包裹里元素可能为空的 {@code Opt} * @since 5.7.17 */ - public static > Opt ofEmptyAble(R value) { - return CollUtil.isEmpty(value) ? empty() : new Opt<>(value); + public static Opt> ofEmptyAble(List value) { + return CollectionUtil.isEmpty(value) ? empty() : new Opt<>(value); } /** - * 传入一段操作,包裹异常 * * @param supplier 操作 * @param 类型 diff --git a/hutool-core/src/main/java/cn/hutool/core/thread/AsyncUtil.java b/hutool-core/src/main/java/cn/hutool/core/thread/AsyncUtil.java index 4dc8efcee..ab9947744 100644 --- a/hutool-core/src/main/java/cn/hutool/core/thread/AsyncUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/thread/AsyncUtil.java @@ -1,7 +1,5 @@ package cn.hutool.core.thread; -import cn.hutool.core.lang.Opt; - import java.lang.reflect.UndeclaredThrowableException; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -62,15 +60,4 @@ public class AsyncUtil { } } - /** - * 获取异步任务结果,包裹了异常,并返回 {@link Opt} - * - * @param 任务返回值类型 - * @param task 异步任务 - * @return 任务返回值 - */ - public static Opt getOpt(CompletableFuture task) { - return Opt.ofTry(task::get); - } - } diff --git a/hutool-core/src/test/java/cn/hutool/core/thread/AsyncUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/thread/AsyncUtilTest.java index e7bdc110d..89d6640d2 100644 --- a/hutool-core/src/test/java/cn/hutool/core/thread/AsyncUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/thread/AsyncUtilTest.java @@ -1,7 +1,5 @@ package cn.hutool.core.thread; -import cn.hutool.core.exceptions.ExceptionUtil; -import cn.hutool.core.lang.Opt; import org.junit.Assert; import org.junit.Ignore; import org.junit.Test; @@ -36,12 +34,5 @@ public class AsyncUtilTest { AsyncUtil.waitAll(hutool, sweater, warm); // 获取结果 Assert.assertEquals("hutool卫衣真暖和", AsyncUtil.get(hutool) + AsyncUtil.get(sweater) + AsyncUtil.get(warm)); - - Opt opt = AsyncUtil.getOpt(CompletableFuture.supplyAsync(() -> { - ExceptionUtil.wrapRuntimeAndThrow("Ops!"); - return "whatever"; - })); - Assert.assertTrue(opt.isFail()); - Assert.assertEquals("java.lang.RuntimeException: Ops!", opt.getException().getMessage()); } }