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()); } }