From a3b9b0ac6b27f7b60a74112521f0cfce9857f203 Mon Sep 17 00:00:00 2001 From: looly Date: Tue, 4 Jan 2022 07:15:20 +0800 Subject: [PATCH] add CheckedUtil --- CHANGELOG.md | 1 + .../main/java/cn/hutool/core/exceptions/CheckedUtil.java | 3 +++ .../java/cn/hutool/core/exceptions/CheckedUtilTest.java | 6 ++++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d9e8aaf9a..b6a1c1642 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ * 【core 】 优化ArrayUtil.isAllEmpty性能(pr#2045@Github) * 【core 】 CharSequenceUtil.replace方法支持增补字符(pr#2041@Github) * 【extra 】 增加SshjSftp(pr#493@Gitee) +* 【core 】 增加CheckedUtil(pr#491@Gitee) ### 🐞Bug修复 * 【http 】 HttpUtil重定向次数失效问题(issue#I4O28Q@Gitee) diff --git a/hutool-core/src/main/java/cn/hutool/core/exceptions/CheckedUtil.java b/hutool-core/src/main/java/cn/hutool/core/exceptions/CheckedUtil.java index 58ba7444c..f64fdd478 100644 --- a/hutool-core/src/main/java/cn/hutool/core/exceptions/CheckedUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/exceptions/CheckedUtil.java @@ -38,6 +38,7 @@ import java.util.Objects; * * * @author conder + * @since 5.7.19 */ public class CheckedUtil { @@ -270,6 +271,7 @@ public class CheckedUtil { } public interface FuncRt extends Func { + @SuppressWarnings("unchecked") R call(P... parameters) throws RuntimeException; } @@ -282,6 +284,7 @@ public class CheckedUtil { } public interface VoidFuncRt

extends VoidFunc

{ + @SuppressWarnings("unchecked") void call(P... parameters) throws RuntimeException; } diff --git a/hutool-core/src/test/java/cn/hutool/core/exceptions/CheckedUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/exceptions/CheckedUtilTest.java index 10b007b23..fbfe82cb2 100644 --- a/hutool-core/src/test/java/cn/hutool/core/exceptions/CheckedUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/exceptions/CheckedUtilTest.java @@ -29,18 +29,20 @@ public class CheckedUtilTest { } + @SuppressWarnings("ConstantConditions") @Test public void supplierTest() { File noFile = new File("./no-file"); try { //本行代码原本需要抛出受检查异常,现在只抛出运行时异常 - FileInputStream stream = CheckedUtil.uncheck(() -> new FileInputStream(noFile)).call(); + CheckedUtil.uncheck(() -> new FileInputStream(noFile)).call(); } catch (Exception re) { Assert.assertTrue(re instanceof RuntimeException); } } + @SuppressWarnings("ConstantConditions") @Test public void functionTest() { Func1 afunc = (funcParam) -> { @@ -55,7 +57,7 @@ public class CheckedUtilTest { try { //本行代码原本需要抛出受检查异常,现在只抛出运行时异常 - String reslut = CheckedUtil.uncheck(afunc).call("hello world"); + CheckedUtil.uncheck(afunc).call("hello world"); } catch (Exception re) { Assert.assertTrue(re instanceof RuntimeException); }