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