diff --git a/src/main/java/xyz/zhouxy/plusone/commons/util/AssertTools.java b/src/main/java/xyz/zhouxy/plusone/commons/util/AssertTools.java
new file mode 100644
index 0000000..95512eb
--- /dev/null
+++ b/src/main/java/xyz/zhouxy/plusone/commons/util/AssertTools.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2022-2023 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package xyz.zhouxy.plusone.commons.util;
+
+import java.util.function.Supplier;
+
+import javax.annotation.Nonnull;
+
+/**
+ * 断言工具
+ *
+ *
+ * 不封装过多判断逻辑,鼓励充分使用项目中的工具类进行逻辑判断。
+ * 本工具类基本仅对表达式进行判断,并在表达式为 {@code false} 时抛出对应异常。
+ */
+public class AssertTools {
+
+ public static void checkParameterNotNull(String paramName, T value) {
+ checkCondition(value != null,
+ () -> new IllegalArgumentException(String.format("The parameter \"%s\" cannot be null.", paramName)));
+ }
+
+ public static void checkParameterNotNull(T obj, String errMsg) {
+ checkCondition(obj != null, () -> new IllegalArgumentException(errMsg));
+ }
+
+ public static void checkParameterNotNull(T obj, String format, Object... args) {
+ checkCondition(obj != null, () -> new IllegalArgumentException(String.format(format, args)));
+ }
+
+ public static void checkParameter(boolean condition, String errMsg) {
+ checkCondition(condition, () -> new IllegalArgumentException(errMsg));
+ }
+
+ public static void checkParameter(boolean condition, String format, Object... args) {
+ checkCondition(condition, () -> new IllegalArgumentException(String.format(format, args)));
+ }
+
+ public static void checkState(boolean condition, String errMsg) {
+ checkCondition(condition, () -> new IllegalStateException(errMsg));
+ }
+
+ public static void checkState(boolean condition, String format, Object... args) {
+ checkCondition(condition, () -> new IllegalStateException(String.format(format, args)));
+ }
+
+ public static void checkCondition(boolean condition, @Nonnull Supplier e)
+ throws T {
+ if (!condition) {
+ throw e.get();
+ }
+ }
+
+ private AssertTools() {
+ throw new IllegalStateException("Utility class");
+ }
+}
diff --git a/src/main/java/xyz/zhouxy/plusone/commons/util/EnumTools.java b/src/main/java/xyz/zhouxy/plusone/commons/util/EnumTools.java
index 882e75d..2ad504f 100644
--- a/src/main/java/xyz/zhouxy/plusone/commons/util/EnumTools.java
+++ b/src/main/java/xyz/zhouxy/plusone/commons/util/EnumTools.java
@@ -46,7 +46,7 @@ public final class EnumTools {
public static > E valueOf(Class clazz, int ordinal) { // NOSONAR 该方法弃用,但不删掉
Preconditions.checkNotNull(clazz, "Clazz must not be null.");
E[] values = clazz.getEnumConstants();
- PreconditionsExt.checkCondition((ordinal >= 0 && ordinal < values.length),
+ AssertTools.checkCondition((ordinal >= 0 && ordinal < values.length),
() -> new EnumConstantNotPresentException(clazz, Integer.toString(ordinal)));
return values[ordinal];
}
diff --git a/src/main/java/xyz/zhouxy/plusone/commons/util/PreconditionsExt.java b/src/main/java/xyz/zhouxy/plusone/commons/util/PreconditionsExt.java
deleted file mode 100644
index a0bdef3..0000000
--- a/src/main/java/xyz/zhouxy/plusone/commons/util/PreconditionsExt.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright 2022-2023 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package xyz.zhouxy.plusone.commons.util;
-
-import java.util.Arrays;
-import java.util.function.Supplier;
-
-import javax.annotation.Nonnull;
-
-import com.google.common.base.Preconditions;
-
-/**
- * Guava Preconditions 的扩展。
- *
- * @author ZhouXY
- *
- * @see com.google.common.base.Preconditions
- */
-public class PreconditionsExt {
-
- public static void checkCondition(boolean condition, @Nonnull Supplier e) throws E {
- if (!condition) {
- throw e.get();
- }
- }
-
- public static void checkAllNotNull(Iterable values) throws E {
- Preconditions.checkNotNull(values);
- values.forEach(Preconditions::checkNotNull);
- }
-
- @SafeVarargs
- public static void checkAllNotNull(T... values) throws E {
- Preconditions.checkNotNull(values);
- Arrays.stream(values).forEach(Preconditions::checkNotNull);
- }
-
- private PreconditionsExt() {
- throw new IllegalStateException("Utility class");
- }
-}
diff --git a/src/test/java/xyz/zhouxy/plusone/commons/util/PreconditionsExtTests.java b/src/test/java/xyz/zhouxy/plusone/commons/util/PreconditionsExtTests.java
deleted file mode 100644
index a6114d0..0000000
--- a/src/test/java/xyz/zhouxy/plusone/commons/util/PreconditionsExtTests.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package xyz.zhouxy.plusone.commons.util;
-
-import org.junit.jupiter.api.Test;
-
-import lombok.extern.slf4j.Slf4j;
-
-import java.util.Arrays;
-import java.util.List;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-@Slf4j
-class PreconditionsExtTests {
-
- @Test
- void testCheck() {
- assertThrows(TestException.class, () -> {
- PreconditionsExt.checkCondition(false, () -> new TestException("Test error message."));
- });
- }
-
- @Test
- void testCheckAllNotNull() {
- assertThrows(NullPointerException.class, () -> {
- Object[] array = null;
- PreconditionsExt.checkAllNotNull(array);
- });
- Object obj = new Object();
- assertNotNull(obj);
- assertThrows(NullPointerException.class,
- () -> PreconditionsExt.checkAllNotNull(new Object[] { obj, null }));
- assertThrows(NullPointerException.class,
- () -> PreconditionsExt.checkAllNotNull(obj, null));
- List