From e5cd9815081ff16c89f96d5d30d9fa36a828dc97 Mon Sep 17 00:00:00 2001 From: ZhouXY108 Date: Mon, 21 Oct 2024 18:18:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plusone/commons/util/ArrayTools.java | 71 ++++++++++++------- .../plusone/commons/util/AssertTools.java | 22 +++++- 2 files changed, 66 insertions(+), 27 deletions(-) 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 559582f..1fd381d 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/util/ArrayTools.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/util/ArrayTools.java @@ -26,18 +26,23 @@ import javax.annotation.Nullable; public class ArrayTools { - // empty arrays + // #region - empty arrays + public static final char[] EMPTY_CHAR_ARRAY = {}; public static final int[] EMPTY_INTEGER_ARRAY = {}; public static final long[] EMPTY_LONG_ARRAY = {}; public static final float[] EMPTY_FLOAT_ARRAY = {}; public static final double[] EMPTY_DOUBLE_ARRAY = {}; + // #endregion + + // #region - isNullOrEmpty + // isNullOrEmpty /** * 检查给定数组是否为空 - * + * * @param arr 待检查的数组,可以为 {@code null} * @param 数组中元素的类型 * @return 如果数组为 {@code null} 或长度为 0,则返回 {@code true};否则返回 {@code false} @@ -49,7 +54,7 @@ public class ArrayTools { // isNullOrEmpty - float /** * 检查给定数组是否为空 - * + * * @param arr 待检查的数组,可以为 {@code null} * @return 如果数组为 {@code null} 或长度为 0,则返回 {@code true};否则返回 {@code false} */ @@ -60,7 +65,7 @@ public class ArrayTools { // isNullOrEmpty - double /** * 检查给定数组是否为空 - * + * * @param arr 待检查的数组,可以为 {@code null} * @return 如果数组为 {@code null} 或长度为 0,则返回 {@code true};否则返回 {@code false} */ @@ -71,7 +76,7 @@ public class ArrayTools { // isNullOrEmpty - byte /** * 检查给定数组是否为空 - * + * * @param arr 待检查的数组,可以为 {@code null} * @return 如果数组为 {@code null} 或长度为 0,则返回 {@code true};否则返回 {@code false} */ @@ -82,7 +87,7 @@ public class ArrayTools { // isNullOrEmpty - long /** * 检查给定数组是否为空 - * + * * @param arr 待检查的数组,可以为 {@code null} * @return 如果数组为 {@code null} 或长度为 0,则返回 {@code true};否则返回 {@code false} */ @@ -93,7 +98,7 @@ public class ArrayTools { // isNullOrEmpty - int /** * 检查给定数组是否为空 - * + * * @param arr 待检查的数组,可以为 {@code null} * @return 如果数组为 {@code null} 或长度为 0,则返回 {@code true};否则返回 {@code false} */ @@ -101,10 +106,14 @@ public class ArrayTools { return arr == null || arr.length == 0; } + // #endregion + + // #region - isNotEmpty + // isNotEmpty /** * 检查给定数组是否不为空 - * + * * @param arr 待检查的数组,可以为 {@code null} * @param 数组中元素的类型 * @return 如果数组不为 {@code null} 且长度大于 0,则返回 {@code true};否则返回 {@code false} @@ -116,7 +125,7 @@ public class ArrayTools { // isNotEmpty - float /** * 检查给定数组是否不为空 - * + * * @param arr 待检查的数组,可以为 {@code null} * @return 如果数组不为 {@code null} 且长度大于 0,则返回 {@code true};否则返回 {@code false} */ @@ -127,7 +136,7 @@ public class ArrayTools { // isNotEmpty - double /** * 检查给定数组是否不为空 - * + * * @param arr 待检查的数组,可以为 {@code null} * @return 如果数组不为 {@code null} 且长度大于 0,则返回 {@code true};否则返回 {@code false} */ @@ -138,7 +147,7 @@ public class ArrayTools { // isNotEmpty - byte /** * 检查给定数组是否不为空 - * + * * @param arr 待检查的数组,可以为 {@code null} * @return 如果数组不为 {@code null} 且长度大于 0,则返回 {@code true};否则返回 {@code false} */ @@ -149,7 +158,7 @@ public class ArrayTools { // isNotEmpty - long /** * 检查给定数组是否不为空 - * + * * @param arr 待检查的数组,可以为 {@code null} * @return 如果数组不为 {@code null} 且长度大于 0,则返回 {@code true};否则返回 {@code false} */ @@ -160,7 +169,7 @@ public class ArrayTools { // isNotEmpty - int /** * 检查给定数组是否不为空 - * + * * @param arr 待检查的数组,可以为 {@code null} * @return 如果数组不为 {@code null} 且长度大于 0,则返回 {@code true};否则返回 {@code false} */ @@ -168,7 +177,9 @@ public class ArrayTools { return arr != null && arr.length > 0; } - // isAllElementsNotNull + // #endregion + + // #region - isAllElementsNotNull /** * 判断数组的所有元素是否都不为空: @@ -178,11 +189,11 @@ public class ArrayTools { *
  • 数组中有至少一个元素为 {@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) { @@ -195,11 +206,13 @@ public class ArrayTools { return true; } - // concat + // #endregion + + // #region - concat /** * 拼接多个数组 - * + * * @param arrays 数组集合,可以为 {@code null} * @return 拼接后的数组 */ @@ -219,7 +232,7 @@ public class ArrayTools { /** * 拼接多个数组 - * + * * @param arrays 数组集合,可以为 {@code null} * @return 拼接后的数组 */ @@ -239,7 +252,7 @@ public class ArrayTools { /** * 拼接多个数组 - * + * * @param arrays 数组集合,可以为 {@code null} * @return 拼接后的数组 */ @@ -259,7 +272,7 @@ public class ArrayTools { /** * 拼接多个数组 - * + * * @param arrays 数组集合,可以为 {@code null} * @return 拼接后的数组 */ @@ -279,7 +292,7 @@ public class ArrayTools { /** * 拼接多个数组 - * + * * @param arrays 数组集合,可以为 {@code null} * @return 拼接后的数组 */ @@ -299,7 +312,7 @@ public class ArrayTools { /** * 将集合中的数组连接为一个列表 - * + * * @param arrays 可能包含多个数组的集合,这些数组中的元素将被连接到一个列表中 * @param 泛型参数,表示数组的元素类型 * @return 返回连接后的列表,如果输入的集合为空或包含空数组,则返回空列表 @@ -322,6 +335,10 @@ public class ArrayTools { return result; } + // #endregion + + // #region - fill + // fill - char public static void fill(char[] a, char... values) { @@ -451,7 +468,7 @@ public class ArrayTools { public static void fill(@Nonnull T[] a, int fromIndex, int toIndex, T[] values) { fillInternal(a, fromIndex, toIndex, values); } - + private static void fillInternal(@Nonnull T[] a, int fromIndex, int toIndex, @Nullable T[] values) { AssertTools.checkArgumentNotNull(a); if (values == null || values.length == 0) { @@ -475,7 +492,13 @@ public class ArrayTools { } } + // #endregion + + // #region - private constructor + private ArrayTools() { throw new IllegalStateException("Utility class"); } + + // #endregion } diff --git a/src/main/java/xyz/zhouxy/plusone/commons/util/AssertTools.java b/src/main/java/xyz/zhouxy/plusone/commons/util/AssertTools.java index d2446d6..b2e5ea3 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/util/AssertTools.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/util/AssertTools.java @@ -22,22 +22,24 @@ import javax.annotation.Nonnull; /** * 断言工具 - * + * *

    * 本工具类基本仅对表达式进行判断,并在表达式为 {@code false} 时抛出对应异常。 * 不封装过多判断逻辑,鼓励充分使用项目中的工具类进行逻辑判断。 *

    - * + * *
      * AssertTools.checkArgument(StringUtils.hasText(str), "The argument cannot be blank.");
      * AssertTools.checkState(ArrayUtils.isNotEmpty(result), "The result cannot be empty.");
      * AssertTools.checkCondition(!CollectionUtils.isEmpty(roles), () -> new InvalidInputException("The roles cannot be empty."));
      * 
    - * + * * @author ZhouXY */ public class AssertTools { + // #region - checkArgument + public static void checkArgumentNotNull(T argument) { checkCondition(argument != null, () -> new IllegalArgumentException("The argument cannot be null.")); } @@ -70,6 +72,10 @@ public class AssertTools { checkCondition(condition, () -> new IllegalArgumentException(String.format(format, args))); } + // #endregion + + // #region - checkState + public static void checkState(boolean condition) { checkCondition(condition, IllegalStateException::new); } @@ -86,6 +92,10 @@ public class AssertTools { checkCondition(condition, () -> new IllegalStateException(String.format(format, args))); } + // #endregion + + // #region - checkCondition + public static void checkCondition(boolean condition, @Nonnull Supplier e) throws T { if (!condition) { @@ -93,7 +103,13 @@ public class AssertTools { } } + // #endregion + + // #region - private constructor + private AssertTools() { throw new IllegalStateException("Utility class"); } + + // #endregion }