From ae26f64a84d97cbec36e11c2970f4f874d8f5ac7 Mon Sep 17 00:00:00 2001 From: lixiaohua <1124205446@qq.com> Date: Mon, 10 Aug 2020 17:32:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=AD=E8=A8=80=E5=A2=9E=E5=8A=A0=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E8=87=AA=E5=AE=9A=E4=B9=89=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/hutool/core/lang/Assert.java | 20 +++++++++++++++++++ .../java/cn/hutool/core/lang/AssertTest.java | 12 +++++++++++ 2 files changed, 32 insertions(+) diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Assert.java b/hutool-core/src/main/java/cn/hutool/core/lang/Assert.java index 217760e66..87fe42724 100644 --- a/hutool-core/src/main/java/cn/hutool/core/lang/Assert.java +++ b/hutool-core/src/main/java/cn/hutool/core/lang/Assert.java @@ -2,8 +2,11 @@ package cn.hutool.core.lang; import java.util.Collection; import java.util.Map; +import java.util.function.Supplier; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.func.Func0; +import cn.hutool.core.lang.func.VoidFunc0; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.StrUtil; @@ -16,6 +19,23 @@ import cn.hutool.core.util.StrUtil; */ public class Assert { + /** + * 断言是否为真,如果为 {@code false} 抛出给定的异常
+ * + *
+	 * Assert.isTrue(i > 0, IllegalArgumentException::new);
+	 * 
+ * + * @param expression 布尔值 + * @param supplier 指定断言不通过时抛出的异常 + * @throws X if expression is {@code false} + */ + public static void isTrue(boolean expression, Func0 supplier) throws X { + if (false == expression) { + throw supplier.callWithRuntimeException(); + } + } + /** * 断言是否为真,如果为 {@code false} 抛出 {@code IllegalArgumentException} 异常
* diff --git a/hutool-core/src/test/java/cn/hutool/core/lang/AssertTest.java b/hutool-core/src/test/java/cn/hutool/core/lang/AssertTest.java index d7136f271..492b82532 100644 --- a/hutool-core/src/test/java/cn/hutool/core/lang/AssertTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/lang/AssertTest.java @@ -14,4 +14,16 @@ public class AssertTest { String a = null; cn.hutool.core.lang.Assert.isNull(a); } + + @Test(expected = IllegalArgumentException.class) + public void isTrueTest() { + int i = 0; + cn.hutool.core.lang.Assert.isTrue(i > 0, IllegalArgumentException::new); + } + + @Test(expected = IndexOutOfBoundsException.class) + public void isTrueTest2() { + int i = -1; + cn.hutool.core.lang.Assert.isTrue(i >= 0, IndexOutOfBoundsException::new); + } }