diff --git a/src/main/java/xyz/zhouxy/plusone/commons/util/ArrayTools.java b/src/main/java/xyz/zhouxy/plusone/commons/util/ArrayTools.java
index 9297b48..5c416f4 100644
--- a/src/main/java/xyz/zhouxy/plusone/commons/util/ArrayTools.java
+++ b/src/main/java/xyz/zhouxy/plusone/commons/util/ArrayTools.java
@@ -21,11 +21,9 @@ import java.util.Collection;
import java.util.Collections;
import java.util.List;
+import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import com.google.common.annotations.Beta;
-
-@Beta
public class ArrayTools {
// isNullOrEmpty
@@ -163,6 +161,33 @@ public class ArrayTools {
return arr != null && arr.length > 0;
}
+ // isAllElementsNotNull
+
+ /**
+ * 判断数组的所有元素是否都不为空:
+ *
+ * - 数组为 {@code null}:抛出异常,因为传入 {@code null} 通常被视为编程错误。
+ *
- 数组不为 {@code null} 但长度为 0:在这种情况下,通常认为数组中的所有元素都不为 {@code null},因此返回 {@code null}。
+ *
- 数组中有至少一个元素为 {@code null}:返回 {@code false}。
+ *
- 数组中所有元素都不为 {@code null}:返回 {@code true}。
+ *
+ *
+ * @param 数组元素的类型
+ * @param arr 待检查的数组。不为 {@code null}
+ * @return 如果数组的所有元素都不为 {@code null},则返回 {@code true};否则返回 {@code false}
+ *
+ * @throws IllegalArgumentException 当参数为空时抛出
+ */
+ public static boolean isAllElementsNotNull(@Nonnull final T[] arr) {
+ AssertTools.checkParameter(arr != null, "The array cannot be null.");
+ for (T element : arr) {
+ if (element == null) {
+ return false;
+ }
+ }
+ return true;
+ }
+
// concat
/**
diff --git a/src/test/java/xyz/zhouxy/plusone/commons/util/ArrayToolsTests.java b/src/test/java/xyz/zhouxy/plusone/commons/util/ArrayToolsTests.java
new file mode 100644
index 0000000..e2f12c5
--- /dev/null
+++ b/src/test/java/xyz/zhouxy/plusone/commons/util/ArrayToolsTests.java
@@ -0,0 +1,20 @@
+package xyz.zhouxy.plusone.commons.util;
+
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import org.junit.jupiter.api.Test;
+
+@SuppressWarnings("all")
+public class ArrayToolsTests {
+ @Test
+ void testIsAllNotNull() {
+ assertTrue(ArrayTools.isAllElementsNotNull(new Object[] { 1L, 2, 3.0, "Java" }));
+ assertFalse(ArrayTools.isAllElementsNotNull(new Object[] { 1L, 2, 3.0, "Java", null }));
+ assertFalse(ArrayTools.isAllElementsNotNull(new Object[] { null, 1L, 2, 3.0, "Java" }));
+ assertTrue(ArrayTools.isAllElementsNotNull(new Object[] {}));
+ assertThrows(IllegalArgumentException.class,
+ () -> ArrayTools.isAllElementsNotNull(null));
+ }
+}