From f83bb55fd66e0642fa7c8f99ae8400b53f7401c9 Mon Sep 17 00:00:00 2001
From: ZhouXY108
+ * 使用 {@link DateTimeFormatter#ISO_INSTANT} 进行 {@link Instant} 的序列化与反序列化。
+ *
- * 使用 {@link DateTimeFormatter#ISO_INSTANT} 进行 {@link Instant} 的序列化与反序列化。
- *
+ * 使用 {@link DateTimeFormatter#ISO_INSTANT} 进行 {@link Instant} 的序列化与反序列化。
+ *
* 分别标识读方法(如 getter)或写方法(如 setter)。 - *
+ * ** 最早是写了一个集合类,为了方便判断使用读写锁时,哪些情况下使用读锁,哪些情况下使用写锁。 - *
* ** 标识该方法不被支持或没有实现,将抛出 {@link UnsupportedOperationException}。 * 为了方便在使用时,不需要点进源码,就能知道该方法没有实现。 - *
* *- * Java 非 final 的实例方法,对应 C++/C# 中的虚方法,允许被子类覆写。 + * Java 非 final 的实例方法,对应 C++/C# 中的虚方法,允许被子类覆写。 * {@link Virtual} 注解旨在设计父类时,强调该方法父类虽然有默认实现,但子类可以根据自己的需要覆写。 - *
* ** 标记一个类,表示其作为值对象,区别于 Entity。 - *
* * @author ZhouXY */ diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/base/Ref.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/base/Ref.java index 4beae5d..38f551a 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/base/Ref.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/base/Ref.java @@ -27,7 +27,7 @@ import javax.annotation.Nullable; /** * {@link Ref} 包装了一个值,表示对该值的应用。 * - *灵感来自于 C# 的 {@value ref} 参数修饰符。C# 允许通过以下方式,将值返回给调用端:
+ *灵感来自于 C# 的 {@code ref} 参数修饰符。C# 允许通过以下方式,将值返回给调用端:
** void Method(ref int refArgument) * { @@ -51,7 +51,7 @@ import javax.annotation.Nullable; ** 当一个方法需要产生多个结果时,无法有多个返回值,可以使用 {@link Ref} 作为参数传入,方法内部修改 {@link Ref} 的值。 * 调用方在调用方法之后,使用 {@code getValue()} 获取结果。 - *
+ * ** String method(final Ref<Integer> intRefArgument, final Ref<String> strRefArgument) { * intRefArgument.transformValue(i -> i + 44); diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/base/package-info.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/base/package-info.java index 43dff12..e41fd29 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/base/package-info.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/base/package-info.java @@ -20,8 +20,8 @@ *1. Ref
** {@link Ref} 包装了一个值,表示对该值的应用。 - *
- *灵感来自于 C# 的 {@value ref} 参数修饰符。C# 允许通过以下方式,将值返回给调用端:
+ * + *灵感来自于 C# 的 {@code ref} 参数修饰符。C# 允许通过以下方式,将值返回给调用端:
** void Method(ref int refArgument) * { @@ -45,7 +45,7 @@ ** 当一个方法需要产生多个结果时,无法有多个返回值,可以使用 {@link Ref} 作为参数传入,方法内部修改 {@link Ref} 的值。 * 调用方在调用方法之后,使用 {@code getValue()} 获取结果。 - *
+ * ** String method(Ref<Integer> intRefArgument, Ref<String> strRefArgument) { * intRefArgument.transformValue(i -> i + 44); @@ -65,7 +65,6 @@ ** 类似于枚举这样的类型,通常需要设置固定的码值表示对应的含义。 * 可实现 {@link IWithCode}、{@link IWithIntCode}、{@link IWithLongCode},便于在需要的地方对这些接口的实现进行处理。 - *
* * @author ZhouXY */ diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/collection/package-info.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/collection/package-info.java index 5bfdc39..a463893 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/collection/package-info.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/collection/package-info.java @@ -15,7 +15,7 @@ */ /** - *集合
+ *
集合
* ** 1. {@link CollectionTools} diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/constant/PatternConsts.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/constant/PatternConsts.java index bf76fb0..afc80ec 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/constant/PatternConsts.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/constant/PatternConsts.java @@ -31,7 +31,7 @@ public final class PatternConsts { * yyyyMMdd * * @see RegexConsts#BASIC_ISO_DATE - * + * */ public static final Pattern BASIC_ISO_DATE = Pattern.compile(RegexConsts.BASIC_ISO_DATE); diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/constant/package-info.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/constant/package-info.java index 8e52806..0e1cfa9 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/constant/package-info.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/constant/package-info.java @@ -15,7 +15,7 @@ */ /** - *
常量
+ *
常量
* ** 1. 正则常量 diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/MultiTypesException.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/MultiTypesException.java index d94df8a..d0ade7b 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/MultiTypesException.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/MultiTypesException.java @@ -24,13 +24,12 @@ import xyz.zhouxy.plusone.commons.base.IWithCode; * *
* 异常在不同场景下被抛出,可以用不同的枚举值,表示不同的场景类型。 - *
+ * ** 异常实现 {@link MultiTypesException} 的 {@link #getType} 方法,返回对应的场景类型。 - *
+ * ** 表示场景类型的枚举实现 {@link ExceptionType},其中的工厂方法用于创建对应类型的异常。 - *
* ** public final class LoginException @@ -61,7 +60,7 @@ import xyz.zhouxy.plusone.commons.base.IWithCode; * * // ... * - * public enum Type implements ExceptionType{ + * public enum Type implements ExceptionType<LoginException> { * DEFAULT("00", "当前会话未登录"), * NOT_TOKEN("10", "未提供token"), * INVALID_TOKEN("20", "token无效"), @@ -117,7 +116,6 @@ import xyz.zhouxy.plusone.commons.base.IWithCode; * * throw LoginException.Type.TOKEN_TIMEOUT.create(); *- * * * @author ZhouXY * @since 1.0.0 diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/ParsingFailureException.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/ParsingFailureException.java index 8948f3e..f716cb0 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/ParsingFailureException.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/ParsingFailureException.java @@ -33,7 +33,6 @@ import xyz.zhouxy.plusone.commons.exception.MultiTypesException.ExceptionType; ** throw new RequestParamsException(ParsingFailureException.of(ParsingFailureException.Type.NUMBER_PARSING_FAILURE)); *- * * * @author ZhouXY * @since 1.0.0 diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/business/BizException.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/business/BizException.java index 18549db..72edd38 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/business/BizException.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/business/BizException.java @@ -21,11 +21,10 @@ package xyz.zhouxy.plusone.commons.exception.business; * ** 业务异常 - *
* ** NOTE: 通常表示业务中的意外情况。如:用户错误输入、缺失必填字段、用户余额不足等。 - *
+ * * @author ZhouXY * @since 1.0.0 */ diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/business/InvalidInputException.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/business/InvalidInputException.java index bb25415..a5b095b 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/business/InvalidInputException.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/business/InvalidInputException.java @@ -26,11 +26,10 @@ import xyz.zhouxy.plusone.commons.exception.MultiTypesException; * ** 用户输入内容非法 - *
* ** NOTE: 属业务异常 - *
+ * * @author ZhouXY * @since 1.0.0 */ diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/business/RequestParamsException.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/business/RequestParamsException.java index 9f39f7e..4a654f3 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/business/RequestParamsException.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/business/RequestParamsException.java @@ -21,7 +21,6 @@ package xyz.zhouxy.plusone.commons.exception.business; * ** 用户请求参数错误 - *
* * @author ZhouXY * @since 1.0.0 diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/package-info.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/package-info.java index f8da61b..851002c 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/package-info.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/package-info.java @@ -15,18 +15,17 @@ */ /** - *异常
+ *
异常
* *1. {@link MultiTypesException} - 多类型异常
** 异常在不同场景下被抛出,可以用不同的枚举值,表示不同的场景类型。 - *
+ * ** 异常实现 {@link MultiTypesException} 的 {@link MultiTypesException#getType} 方法,返回对应的场景类型。 - *
+ * ** 表示场景类型的枚举实现 {@link MultiTypesException.ExceptionType},其中的工厂方法用于创建对应类型的异常。 - *
* ** public final class LoginException @@ -57,7 +56,7 @@ * * // ... * - * public enum Type implements ExceptionType- * * * @author ZhouXY */ diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/gson/adapter/JSR310TypeAdapters.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/gson/adapter/JSR310TypeAdapters.java index 6130c95..427b98a 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/gson/adapter/JSR310TypeAdapters.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/gson/adapter/JSR310TypeAdapters.java @@ -164,7 +164,7 @@ public class JSR310TypeAdapters { * *{ + * public enum Type implements ExceptionType<LoginException> { * DEFAULT("00", "当前会话未登录"), * NOT_TOKEN("10", "未提供token"), * INVALID_TOKEN("20", "token无效"), @@ -113,7 +112,6 @@ * * throw LoginException.Type.TOKEN_TIMEOUT.create(); *- * * *2. 业务异常
* 预设常见的业务异常。可继承 {@link BizException} 自定义业务异常。 diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/system/DataOperationResultException.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/system/DataOperationResultException.java index 082620b..685df7b 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/system/DataOperationResultException.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/system/DataOperationResultException.java @@ -21,13 +21,12 @@ package xyz.zhouxy.plusone.commons.exception.system; * ** 当数据操作的结果不符合预期时抛出。 - *
* ** 比如当一个 insert 或 update 操作时,预计影响数据库中的一行数据,但结果却影响了零条数据或多条数据, * 当出现这种始料未及的诡异情况时,抛出 {@link DataOperationResultException} 并回滚事务。 * 后续需要排查原因。 - *
+ * * @author ZhouXY * @since 1.0.0 */ diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/system/NoAvailableMacFoundException.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/system/NoAvailableMacFoundException.java index c00a9d6..03b0747 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/system/NoAvailableMacFoundException.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/system/NoAvailableMacFoundException.java @@ -21,7 +21,6 @@ package xyz.zhouxy.plusone.commons.exception.system; * ** 在无法找到可访问的 Mac 地址时抛出 - *
* * @author ZhouXY * @since 1.0.0 diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/system/SysException.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/system/SysException.java index 0848c05..690e6c5 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/system/SysException.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/system/SysException.java @@ -21,7 +21,6 @@ package xyz.zhouxy.plusone.commons.exception.system; * ** 通常表示应用代码存在问题,或因环境问题,引发异常。 - *
* * @author ZhouXY * @since 1.0.0 diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/BoolUnaryOperator.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/BoolUnaryOperator.java index 4bca511..a12e708 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/BoolUnaryOperator.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/BoolUnaryOperator.java @@ -24,7 +24,6 @@ import com.google.common.annotations.Beta; ** 一个特殊的 {@link java.util.function.UnaryOperator}。 * 表示对 {@code boolean} 值的一元操作。 - *
* * @author ZhouXY * @since 1.0.0 diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/CharUnaryOperator.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/CharUnaryOperator.java index 9a3db27..434e25a 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/CharUnaryOperator.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/CharUnaryOperator.java @@ -24,7 +24,6 @@ import com.google.common.annotations.Beta; ** 一个特殊的 {@link java.util.function.UnaryOperator}。 * 表示对 {@code char} 的一元操作。 - *
* * @author ZhouXY * @since 1.0.0 diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/Executable.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/Executable.java index 3f3d933..107518e 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/Executable.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/Executable.java @@ -21,7 +21,6 @@ package xyz.zhouxy.plusone.commons.function; * ** 表示一个无入参无返回值的操作,可抛出异常。 - *
* * @param可抛出的异常类型 * diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/OptionalSupplier.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/OptionalSupplier.java index 97edeb6..8c0d645 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/OptionalSupplier.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/OptionalSupplier.java @@ -24,7 +24,6 @@ import java.util.function.Supplier; * * * 返回 {@code Optional<T>} 对象。 - *
* * @author ZhouXY * @since 1.0.0 diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/PredicateTools.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/PredicateTools.java index e82118a..ef5cec5 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/PredicateTools.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/PredicateTools.java @@ -23,7 +23,6 @@ import java.util.function.Predicate; * ** {@link Predicate} 相关操作。 - *
* * @author ZhouXY * @since 1.0.0 diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/ThrowingConsumer.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/ThrowingConsumer.java index e92e49f..c780211 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/ThrowingConsumer.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/ThrowingConsumer.java @@ -21,7 +21,6 @@ package xyz.zhouxy.plusone.commons.function; * ** 允许抛出异常的消费操作。是一个特殊的 {@link java.util.function.Consumer}。 - *
* * @author ZhouXY * @since 1.0.0 diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/ThrowingFunction.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/ThrowingFunction.java index 4072715..734032e 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/ThrowingFunction.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/ThrowingFunction.java @@ -20,7 +20,6 @@ package xyz.zhouxy.plusone.commons.function; * ** 接收一个参数,并返回一个结果,可以抛出异常。 - *
* * @param入参类型 * @param 返回结果类型 diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/ThrowingPredicate.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/ThrowingPredicate.java index cf650ce..c94a1ef 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/ThrowingPredicate.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/ThrowingPredicate.java @@ -21,7 +21,6 @@ package xyz.zhouxy.plusone.commons.function; * * * 接收一个参数,返回一个布尔值,可抛出异常。 - *
* * @author ZhouXY * @since 1.0.0 diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/ThrowingSupplier.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/ThrowingSupplier.java index 8a3fa6d..65a8d99 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/ThrowingSupplier.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/ThrowingSupplier.java @@ -21,7 +21,6 @@ package xyz.zhouxy.plusone.commons.function; * ** 允许抛出异常的 Supplier 接口。 - *
* * @param结果类型 * @param 异常类型 diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/package-info.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/package-info.java index 458a666..1709cf1 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/package-info.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/function/package-info.java @@ -20,7 +20,6 @@ * 1. PredicateTools
** {@link PredicateTools} 用于 {@link java.util.function.Predicate} 的相关操作。 - *
* *2. Functional interfaces
*@@ -39,7 +38,6 @@ * | Optional | ToOptionalBiFunction | Optional<R> apply(T,U) | * | Optional | ToOptionalFunction | Optional<R> apply(T) | *
* 使用 {@link DateTimeFormatter#ISO_INSTANT} 进行 {@link Instant} 的序列化与反序列化。 - *
+ * */ public static final class InstantTypeAdapter extends TypeAdapter{ diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/Chinese2ndGenIDCardNumber.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/Chinese2ndGenIDCardNumber.java index c8be438..e925fed 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/Chinese2ndGenIDCardNumber.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/Chinese2ndGenIDCardNumber.java @@ -40,7 +40,6 @@ import xyz.zhouxy.plusone.commons.util.StringTools; * * * 中国第二代居民身份证号 - *
* * @author ZhouXY * @since 1.0.0 diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/dto/PagingAndSortingQueryParams.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/dto/PagingAndSortingQueryParams.java index 74c2434..e86c277 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/dto/PagingAndSortingQueryParams.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/dto/PagingAndSortingQueryParams.java @@ -37,7 +37,6 @@ import xyz.zhouxy.plusone.commons.util.StringTools; ** 根据传入的 {@code size} 和 {@code pageNum}, * 提供 {@code getOffset} 方法计算 SQL 语句中 {@code offset} 的值。 - *
* * @author ZhouXY * @see PagingParams diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/dto/package-info.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/dto/package-info.java index 0296dc2..ebd2384 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/dto/package-info.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/dto/package-info.java @@ -22,12 +22,12 @@ * 分页组件由 {@link PagingAndSortingQueryParams} 作为入参, * 因为分页必须伴随着排序,不然可能出现同一个对象重复出现在不同页,有的对象不被查询到的情况, * 所以分页查询的入参必须包含排序条件。 - * + * ** 用户可继承 {@link PagingAndSortingQueryParams} * 构建自己的分页查询入参,需在构造器中调用 {@link PagingAndSortingQueryParams} 的构造器,传入一个 Map 作为白名单, * key 是供前端指定用于排序的属性名,value 是对应数据库中的字段名,只有在白名单中指定的属性名才允许作为排序条件。 - *
+ * ** {@link PagingAndSortingQueryParams} 包含三个主要的属性: *
@@ -37,21 +37,20 @@ *
* 其中 orderBy 是一个 List,可以指定多个排序条件,每个排序条件是一个字符串, * 格式为“属性名-ASC”或“属性名-DESC”,分别表示升序和降序。 - * + * ** 比如前端传入的 orderBy 为 ["name-ASC","age-DESC"],意味着要按 name 进行升序,name 相同的情况下则按 age 进行降序。 - *
+ * ** 使用时调用 {@link PagingAndSortingQueryParams#buildPagingParams()} 方法获取分页参数 {@link PagingParams}。 - *
+ * ** 分页结果可以存放到 {@link PageResult} 中,作为出参。 - *
* *2. {@link UnifiedResponse}
** {@link UnifiedResponse} 对返回给前端的数据进行封装,包含 code、message、data。 - *
+ * ** 可使用 {@link UnifiedResponses} 快速构建 {@link UnifiedResponse} 对象。 * {@link UnifiedResponses} 默认的成功代码为 "2000000", @@ -60,7 +59,6 @@ * 中所示范的,继承 {@link UnifiedResponses} 实现自己的工厂类, * 自定义 SUCCESS_CODE 和 DEFAULT_SUCCESS_MSG 和工厂方法。 * 见 issue#22。 - *
* * @author ZhouXY */ diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/package-info.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/package-info.java index c3f1fb6..4f73c10 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/package-info.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/package-info.java @@ -18,7 +18,6 @@ *业务建模组件
** 包含业务建模可能用到的性别、身份证等元素,也包含 DTO 相关类,如分页查询参数,响应结果,分页结果等。 - *
* * @author ZhouXY */ diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/time/package-info.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/time/package-info.java index 78358d4..edb01ff 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/time/package-info.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/time/package-info.java @@ -15,7 +15,7 @@ */ /** - *时间 API
+ *
时间 API
* *1. 季度 API
* diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/ArrayTools.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/ArrayTools.java index cb4b54b..6f953a7 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/ArrayTools.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/ArrayTools.java @@ -33,7 +33,6 @@ import javax.annotation.Nullable; * ** 数组工具类 - *
* * @author ZhouXY * @since 1.0.0 diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/AssertTools.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/AssertTools.java index cfb4121..268e764 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/AssertTools.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/AssertTools.java @@ -29,7 +29,6 @@ import xyz.zhouxy.plusone.commons.exception.system.DataOperationResultException; * ** 本工具类不封装过多判断逻辑,鼓励充分使用项目中的工具类进行逻辑判断。 - *
* ** AssertTools.checkArgument(StringUtils.hasText(str), "The argument cannot be blank."); diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/BigDecimals.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/BigDecimals.java index 26b512e..e3439f4 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/BigDecimals.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/BigDecimals.java @@ -28,7 +28,6 @@ import xyz.zhouxy.plusone.commons.annotation.StaticFactoryMethod; * ** BigDecimal 工具类 - *
* * @author ZhouXY * @since 1.0.0 diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/DateTimeTools.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/DateTimeTools.java index 9e0dd95..d0fc3f6 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/DateTimeTools.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/DateTimeTools.java @@ -215,7 +215,6 @@ public class DateTimeTools { ** 传入不同 {@link ZoneId},获取到的 {@link ZonedDateTime} 对象实际上还是同一时间戳, * 只是不同时区的表示。 - *
* * @param timeMillis 时间戳 * @param zone 时区 @@ -230,7 +229,6 @@ public class DateTimeTools { ** 传入不同 {@link ZoneId},获取到的 {@link ZonedDateTime} 对象实际上还是同一时间戳, * 只是不同时区的表示。 - *
* * @param dateTime {@link Date} 对象 * @param zone 时区 @@ -245,7 +243,6 @@ public class DateTimeTools { ** 传入不同 {@link ZoneId},获取到的 {@link ZonedDateTime} 对象实际上表示的还是还是同一时间戳的时间, * 只是不同时区的表示。 - *
* * @param dateTime {@link Date} 对象 * @param timeZone 时区 diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/Enumeration.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/Enumeration.java index 49288b6..ffef722 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/Enumeration.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/Enumeration.java @@ -34,7 +34,7 @@ import xyz.zhouxy.plusone.commons.annotation.StaticFactoryMethod; * 参考 Enumeration classes * * @author ZhouXY - * @deprecated 设计 Enumeration 的灵感来自于 .net 社区,因为 C# 的枚举不带行为。 + * @deprecated 设计 Enumeration 的灵感来自于 .net 社区,因为 C# 的枚举不带行为。 * 但 Java 的枚举可以带行为,故大多数情况下不需要这种设计。 */ @Deprecated diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/IdGenerator.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/IdGenerator.java index 0d846c2..fd90391 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/IdGenerator.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/IdGenerator.java @@ -26,7 +26,6 @@ import java.util.concurrent.ConcurrentHashMap; * ** 生成 UUID 和 修改版雪花ID(Seata 版本) - *
* * @see UUID * @see IdWorker diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/IdWorker.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/IdWorker.java index ad884f7..6816793 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/IdWorker.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/IdWorker.java @@ -34,7 +34,7 @@ import xyz.zhouxy.plusone.commons.exception.system.NoAvailableMacFoundException; *每个机器线程安全地生成序列,前面加上机器的id,这样就不会与其它机器的id相冲突。 *时间戳作为序列的“预留位”,它更像是应用启动时最开始的序列的一部分,在一个时间戳里生成 4096 个 id 之后,直接生成下一个时间戳的 id。 * - * + * ** 详情见以下介绍: *
@@ -43,7 +43,7 @@ import xyz.zhouxy.plusone.commons.exception.system.NoAvailableMacFoundException; *
- * + * */ public class IdWorker { diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/OptionalTools.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/OptionalTools.java index 50b7a83..18dd47f 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/OptionalTools.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/OptionalTools.java @@ -45,7 +45,6 @@ public class OptionalTools { *- 在开源项目中看到一个改良版的雪花算法,现在它是你的了。
*- 关于若干读者,阅读“改良版雪花算法”后提出的几个共性问题的回复。
** 包装类为 {@code null} 表示值的缺失,转为 {@link OptionalInt} 后,由 * {@link OptionalInt#empty()} 表示值的缺失。 - *
* * @param value 包装对象 * @return {@link OptionalInt} 实例 @@ -58,7 +57,6 @@ public class OptionalTools { * 将 {@code Optional} 对象转为 {@link OptionalInt} 对象。 * * {@code Optional
* * @param optionalObj {@code Optional} 将整数包装了两次,改为使用 {@link OptionalInt} 包装其中的整数数据。 - * } 对象 * @return {@link OptionalInt} 实例 @@ -72,7 +70,6 @@ public class OptionalTools { * * 包装类为 {@code null} 表示值的缺失,转为 {@link OptionalLong} 后,由 * {@link OptionalLong#empty()} 表示值的缺失。 - *
* * @param value 包装对象 * @return {@link OptionalLong} 实例 @@ -85,7 +82,6 @@ public class OptionalTools { * 将 {@code Optional} 转为 {@link OptionalLong}。 * * {@code Optional
* * @param optionalObj 包装对象 * @return {@link OptionalLong} 实例 @@ -99,7 +95,6 @@ public class OptionalTools { *} 将整数包装了两次,改为使用 {@link OptionalLong} 包装其中的整数数据。 - * * 包装类为 {@code null} 表示值的缺失,转为 {@link OptionalDouble} 后,由 * {@link OptionalDouble#empty()} 表示值的缺失。 - *
* * @param value 包装对象 * @return {@link OptionalDouble} 实例 @@ -112,7 +107,6 @@ public class OptionalTools { * 将 {@code Optional} 转为 {@link OptionalDouble}。 * * {@code Optional
* * @param optionalObj 包装对象 * @return {@link OptionalDouble} 实例 diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/RandomTools.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/RandomTools.java index 0100b1a..1f7ca35 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/RandomTools.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/RandomTools.java @@ -26,7 +26,7 @@ import java.util.concurrent.ThreadLocalRandom; * 随机工具类 *} 将整数包装了两次,改为使用 {@link OptionalDouble} 包装其中的整数数据。 - * * 建议调用方自行维护 Random 对象 - *
+ * * @author ZhouXY */ public final class RandomTools { diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/StringTools.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/StringTools.java index cf1aec7..0a523d5 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/StringTools.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/StringTools.java @@ -31,7 +31,6 @@ import xyz.zhouxy.plusone.commons.constant.PatternConsts; * ** 字符串工具类。 - *
* * @author ZhouXY * @since 1.0.0 diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/package-info.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/package-info.java index ed29202..f93b3c1 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/package-info.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/package-info.java @@ -18,7 +18,6 @@ *工具类
** 包含树构建器({@link TreeBuilder})、断言工具({@link AssertTools})、ID 生成器({@link IdGenerator})及其它实用工具类。 - *
* * @author ZhouXY */ From 8828b12c78b214397d16f3ec2dda2ebf217ef841 Mon Sep 17 00:00:00 2001 From: ZhouXY108Date: Sun, 8 Jun 2025 13:38:03 +0800 Subject: [PATCH 11/16] release: 1.1.0-RC1 --- plusone-commons/pom.xml | 4 ++-- plusone-dependencies/pom.xml | 2 +- pom.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plusone-commons/pom.xml b/plusone-commons/pom.xml index c238688..97d8fd8 100644 --- a/plusone-commons/pom.xml +++ b/plusone-commons/pom.xml @@ -7,7 +7,7 @@ xyz.zhouxy.plusone plusone-parent -1.1.0-SNAPSHOT +1.1.0-RC1 plusone-commons @@ -28,7 +28,7 @@diff --git a/plusone-dependencies/pom.xml b/plusone-dependencies/pom.xml index 7644e82..4c49ade 100644 --- a/plusone-dependencies/pom.xml +++ b/plusone-dependencies/pom.xml @@ -7,7 +7,7 @@ xyz.zhouxy.plusone plusone-dependencies -1.1.0-SNAPSHOT +1.1.0-RC1 pom import xyz.zhouxy.plusone plusone-parent -1.1.0-SNAPSHOT +1.1.0-RC1 plusone-dependencies diff --git a/pom.xml b/pom.xml index addf887..12c265a 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@xyz.zhouxy.plusone plusone-parent -1.1.0-SNAPSHOT +1.1.0-RC1 pom From c816696c55c1fd20d441738aa763c691f4c205bc Mon Sep 17 00:00:00 2001 From: ZhouXY108 Date: Mon, 9 Jun 2025 16:14:44 +0800 Subject: [PATCH 12/16] =?UTF-8?q?docs:=20=E6=94=B9=E6=AD=A3=20`ParsingFail?= =?UTF-8?q?ureException`=20=E6=96=87=E6=A1=A3=E6=B3=A8=E9=87=8A=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E9=94=99=E8=AF=AF=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plusone/commons/exception/ParsingFailureException.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/ParsingFailureException.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/ParsingFailureException.java index f716cb0..5681dac 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/ParsingFailureException.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/ParsingFailureException.java @@ -31,7 +31,7 @@ import xyz.zhouxy.plusone.commons.exception.MultiTypesException.ExceptionType; * 如果表示用户传参造成的解析失败,可使用 {@link RequestParamsException#RequestParamsException(Throwable)}, * 将 ParsingFailureException 包装成 {@link RequestParamsException} 再抛出。 * - * throw new RequestParamsException(ParsingFailureException.of(ParsingFailureException.Type.NUMBER_PARSING_FAILURE)); + * throw new RequestParamsException(ParsingFailureException.Type.NUMBER_PARSING_FAILURE.create()); ** * @author ZhouXY From 0eda94a65830a5dc829014ea813b79f3cff43c94 Mon Sep 17 00:00:00 2001 From: ZhouXY108Date: Mon, 9 Jun 2025 17:05:10 +0800 Subject: [PATCH 13/16] =?UTF-8?q?refactor(exception):=20=E4=B8=BA=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E7=B1=BB=E6=B7=BB=E5=8A=A0=20`serialVersionUID`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 为以下异常类添加 serialVersionUID 字段: - ParsingFailureException - BizException - InvalidInputException - RequestParamsException - DataOperationResultException - SysException --- README.md | 1 + .../zhouxy/plusone/commons/exception/MultiTypesException.java | 1 + .../plusone/commons/exception/ParsingFailureException.java | 1 + .../zhouxy/plusone/commons/exception/business/BizException.java | 1 + .../commons/exception/business/InvalidInputException.java | 1 + .../commons/exception/business/RequestParamsException.java | 1 + .../java/xyz/zhouxy/plusone/commons/exception/package-info.java | 1 + .../commons/exception/system/DataOperationResultException.java | 1 + .../zhouxy/plusone/commons/exception/system/SysException.java | 1 + 9 files changed, 9 insertions(+) diff --git a/README.md b/README.md index 64a5581..c4981fc 100644 --- a/README.md +++ b/README.md @@ -78,6 +78,7 @@ System.out.println(result); // Output: Return string public final class LoginException extends RuntimeException implements MultiTypesException { + private static final long serialVersionUID = 881293090625085616L; private final Type type; private LoginException(@Nonnull Type type, @Nonnull String message) { super(message); diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/MultiTypesException.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/MultiTypesException.java index d0ade7b..159997b 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/MultiTypesException.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/MultiTypesException.java @@ -35,6 +35,7 @@ import xyz.zhouxy.plusone.commons.base.IWithCode; * public final class LoginException * extends RuntimeException * implements MultiTypesException<LoginException, LoginException.Type> { + * private static final long serialVersionUID = 881293090625085616L; * private final Type type; * private LoginException(@Nonnull Type type, @Nonnull String message) { * super(message); diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/ParsingFailureException.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/ParsingFailureException.java index 5681dac..4152440 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/ParsingFailureException.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/ParsingFailureException.java @@ -40,6 +40,7 @@ import xyz.zhouxy.plusone.commons.exception.MultiTypesException.ExceptionType; public final class ParsingFailureException extends RuntimeException implements MultiTypesException { + private static final long serialVersionUID = 795996090625132616L; private final Type type; diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/business/BizException.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/business/BizException.java index 72edd38..f8223a1 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/business/BizException.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/business/BizException.java @@ -29,6 +29,7 @@ package xyz.zhouxy.plusone.commons.exception.business; * @since 1.0.0 */ public class BizException extends RuntimeException { + private static final long serialVersionUID = 982585090625482416L; private static final String DEFAULT_MSG = "业务异常"; diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/business/InvalidInputException.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/business/InvalidInputException.java index a5b095b..301e0ef 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/business/InvalidInputException.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/business/InvalidInputException.java @@ -36,6 +36,7 @@ import xyz.zhouxy.plusone.commons.exception.MultiTypesException; public final class InvalidInputException extends RequestParamsException implements MultiTypesException { + private static final long serialVersionUID = -28994090625082516L; private final Type type; diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/business/RequestParamsException.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/business/RequestParamsException.java index 4a654f3..9bb1ef7 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/business/RequestParamsException.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/business/RequestParamsException.java @@ -26,6 +26,7 @@ package xyz.zhouxy.plusone.commons.exception.business; * @since 1.0.0 */ public class RequestParamsException extends BizException { + private static final long serialVersionUID = 448337090625192516L; private static final String DEFAULT_MSG = "用户请求参数错误"; diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/package-info.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/package-info.java index 851002c..b956736 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/package-info.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/package-info.java @@ -31,6 +31,7 @@ * public final class LoginException * extends RuntimeException * implements MultiTypesException<LoginException, LoginException.Type> { + * private static final long serialVersionUID = 881293090625085616L; * private final Type type; * private LoginException(@Nonnull Type type, @Nonnull String message) { * super(message); diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/system/DataOperationResultException.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/system/DataOperationResultException.java index 685df7b..0fa88ff 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/system/DataOperationResultException.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/system/DataOperationResultException.java @@ -31,6 +31,7 @@ package xyz.zhouxy.plusone.commons.exception.system; * @since 1.0.0 */ public final class DataOperationResultException extends SysException { + private static final long serialVersionUID = 992754090625352516L; private final long expected; private final long actual; diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/system/SysException.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/system/SysException.java index 690e6c5..8dbdf0c 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/system/SysException.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/exception/system/SysException.java @@ -26,6 +26,7 @@ package xyz.zhouxy.plusone.commons.exception.system; * @since 1.0.0 */ public class SysException extends RuntimeException { + private static final long serialVersionUID = -936435090625482516L; private static final String DEFAULT_MSG = "系统异常"; From a55c712349abd63b5dfa346ab8cf54f7b4009fc8 Mon Sep 17 00:00:00 2001 From: ZhouXY108 Date: Mon, 9 Jun 2025 17:21:26 +0800 Subject: [PATCH 14/16] =?UTF-8?q?test:=20=E4=BD=BF=E7=94=A8=20`JSR310TypeA?= =?UTF-8?q?dapters`=20=E7=AE=80=E5=8C=96=E6=B5=8B=E8=AF=95=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PagingAndSortingQueryParamsTests.java | 35 +++---------------- 1 file changed, 5 insertions(+), 30 deletions(-) diff --git a/plusone-commons/src/test/java/xyz/zhouxy/plusone/commons/model/dto/test/PagingAndSortingQueryParamsTests.java b/plusone-commons/src/test/java/xyz/zhouxy/plusone/commons/model/dto/test/PagingAndSortingQueryParamsTests.java index e914d08..b39d4ce 100644 --- a/plusone-commons/src/test/java/xyz/zhouxy/plusone/commons/model/dto/test/PagingAndSortingQueryParamsTests.java +++ b/plusone-commons/src/test/java/xyz/zhouxy/plusone/commons/model/dto/test/PagingAndSortingQueryParamsTests.java @@ -19,14 +19,12 @@ package xyz.zhouxy.plusone.commons.model.dto.test; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; -import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.Statement; import java.time.LocalDate; import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; import java.util.List; import java.util.Map; @@ -45,9 +43,6 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.google.gson.TypeAdapter; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; import lombok.AllArgsConstructor; import lombok.Data; @@ -57,6 +52,9 @@ import lombok.NoArgsConstructor; import lombok.Setter; import lombok.ToString; import lombok.extern.slf4j.Slf4j; + +import xyz.zhouxy.plusone.commons.gson.adapter.JSR310TypeAdapters.LocalDateTimeTypeAdapter; +import xyz.zhouxy.plusone.commons.gson.adapter.JSR310TypeAdapters.LocalDateTypeAdapter; import xyz.zhouxy.plusone.commons.model.dto.PageResult; import xyz.zhouxy.plusone.commons.model.dto.PagingAndSortingQueryParams; import xyz.zhouxy.plusone.commons.model.dto.PagingParams; @@ -187,31 +185,8 @@ public class PagingAndSortingQueryParamsTests { @Test void testGson() { Gson gson = new GsonBuilder() - .registerTypeAdapter(LocalDate.class, new TypeAdapter () { - - @Override - public void write(JsonWriter out, LocalDate value) throws IOException { - out.value(DateTimeFormatter.ISO_DATE.format(value)); - } - - @Override - public LocalDate read(JsonReader in) throws IOException { - return LocalDate.parse(in.nextString(), DateTimeFormatter.ISO_DATE); - } - - }) - .registerTypeAdapter(LocalDateTime.class, new TypeAdapter () { - - @Override - public void write(JsonWriter out, LocalDateTime value) throws IOException { - out.value(DateTimeFormatter.ISO_LOCAL_DATE_TIME.format(value)); - } - - @Override - public LocalDateTime read(JsonReader in) throws IOException { - return LocalDateTime.parse(in.nextString(), DateTimeFormatter.ISO_LOCAL_DATE_TIME); - } - }) + .registerTypeAdapter(LocalDate.class, new LocalDateTypeAdapter().nullSafe()) + .registerTypeAdapter(LocalDateTime.class, new LocalDateTimeTypeAdapter().nullSafe()) .create(); try (SqlSession session = sqlSessionFactory.openSession()) { AccountQueryParams params = gson.fromJson(JSON_STR, AccountQueryParams.class); From 8eac9054cdaf2c8391ceeebf8a37ebc9a989dfb1 Mon Sep 17 00:00:00 2001 From: ZhouXY108 Date: Mon, 9 Jun 2025 17:55:25 +0800 Subject: [PATCH 15/16] =?UTF-8?q?refactor(gson):=20=E9=87=8D=E6=9E=84=20`J?= =?UTF-8?q?SR310TypeAdapters`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 抽象出 TemporalAccessorTypeAdapter 类,简化了 LocalDate、LocalDateTime、ZonedDateTime 和 Instant 类型适配器的实现 --- .../gson/adapter/JSR310TypeAdapters.java | 104 ++++++++---------- 1 file changed, 43 insertions(+), 61 deletions(-) diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/gson/adapter/JSR310TypeAdapters.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/gson/adapter/JSR310TypeAdapters.java index 427b98a..68428f1 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/gson/adapter/JSR310TypeAdapters.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/gson/adapter/JSR310TypeAdapters.java @@ -21,6 +21,8 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; +import java.time.temporal.TemporalAccessor; +import java.time.temporal.TemporalQuery; import com.google.gson.TypeAdapter; import com.google.gson.stream.JsonReader; @@ -42,16 +44,15 @@ public class JSR310TypeAdapters { * {@code LocalDate} 的 {@code TypeAdapter}, * 用于 Gson 对 {@code LocalDate} 进行相互转换。 */ - public static final class LocalDateTypeAdapter extends TypeAdapter { - - private final DateTimeFormatter dateTimeFormatter; + public static final class LocalDateTypeAdapter + extends TemporalAccessorTypeAdapter { /** * 默认构造函数, * 使用 {@link DateTimeFormatter#ISO_LOCAL_DATE} 进行 {@link LocalDate} 的序列化与反序列化。 */ public LocalDateTypeAdapter() { - this.dateTimeFormatter = DateTimeFormatter.ISO_LOCAL_DATE; + this(DateTimeFormatter.ISO_LOCAL_DATE); } /** @@ -61,20 +62,7 @@ public class JSR310TypeAdapters { * @param formatter 用于序列化 {@link LocalDate} 的格式化器,不可为 {@code null}。 */ public LocalDateTypeAdapter(DateTimeFormatter formatter) { - AssertTools.checkArgumentNotNull(formatter, "formatter can not be null."); - this.dateTimeFormatter = formatter; - } - - /** {@inheritDoc} */ - @Override - public void write(JsonWriter out, LocalDate value) throws IOException { - out.value(dateTimeFormatter.format(value)); - } - - /** {@inheritDoc} */ - @Override - public LocalDate read(JsonReader in) throws IOException { - return LocalDate.parse(in.nextString(), dateTimeFormatter); + super(LocalDate::from, formatter); } } @@ -82,16 +70,15 @@ public class JSR310TypeAdapters { * {@code LocalDateTime} 的 {@code TypeAdapter}, * 用于 Gson 对 {@code LocalDateTime} 进行相互转换。 */ - public static final class LocalDateTimeTypeAdapter extends TypeAdapter { - - private final DateTimeFormatter dateTimeFormatter; + public static final class LocalDateTimeTypeAdapter + extends TemporalAccessorTypeAdapter { /** * 默认构造函数, * 使用 {@link DateTimeFormatter#ISO_LOCAL_DATE_TIME} 进行 {@link LocalDateTime} 的序列化与反序列化。 */ public LocalDateTimeTypeAdapter() { - this.dateTimeFormatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME; + this(DateTimeFormatter.ISO_LOCAL_DATE_TIME); } /** @@ -101,20 +88,7 @@ public class JSR310TypeAdapters { * @param formatter 用于序列化 {@link LocalDateTime} 的格式化器,不可为 {@code null}。 */ public LocalDateTimeTypeAdapter(DateTimeFormatter formatter) { - AssertTools.checkArgumentNotNull(formatter, "formatter can not be null."); - this.dateTimeFormatter = formatter; - } - - /** {@inheritDoc} */ - @Override - public void write(JsonWriter out, LocalDateTime value) throws IOException { - out.value(dateTimeFormatter.format(value)); - } - - /** {@inheritDoc} */ - @Override - public LocalDateTime read(JsonReader in) throws IOException { - return LocalDateTime.parse(in.nextString(), dateTimeFormatter); + super(LocalDateTime::from, formatter); } } @@ -122,16 +96,15 @@ public class JSR310TypeAdapters { * {@code ZonedDateTime} 的 {@code TypeAdapter}, * 用于 Gson 对 {@code ZonedDateTime} 进行相互转换。 */ - public static final class ZonedDateTimeTypeAdapter extends TypeAdapter { - - private final DateTimeFormatter dateTimeFormatter; + public static final class ZonedDateTimeTypeAdapter + extends TemporalAccessorTypeAdapter { /** * 默认构造函数, * 使用 {@link DateTimeFormatter#ISO_ZONED_DATE_TIME} 进行 {@link ZonedDateTime} 的序列化与反序列化。 */ public ZonedDateTimeTypeAdapter() { - this.dateTimeFormatter = DateTimeFormatter.ISO_ZONED_DATE_TIME; + this(DateTimeFormatter.ISO_ZONED_DATE_TIME); } /** @@ -141,20 +114,7 @@ public class JSR310TypeAdapters { * @param formatter 用于序列化 {@link ZonedDateTime} 的格式化器,不可为 {@code null}。 */ public ZonedDateTimeTypeAdapter(DateTimeFormatter formatter) { - AssertTools.checkArgumentNotNull(formatter, "formatter can not be null."); - this.dateTimeFormatter = formatter; - } - - /** {@inheritDoc} */ - @Override - public void write(JsonWriter out, ZonedDateTime value) throws IOException { - out.value(dateTimeFormatter.format(value)); - } - - /** {@inheritDoc} */ - @Override - public ZonedDateTime read(JsonReader in) throws IOException { - return ZonedDateTime.parse(in.nextString(), dateTimeFormatter); + super(ZonedDateTime::from, formatter); } } @@ -166,18 +126,40 @@ public class JSR310TypeAdapters { * 使用 {@link DateTimeFormatter#ISO_INSTANT} 进行 {@link Instant} 的序列化与反序列化。 * */ - public static final class InstantTypeAdapter extends TypeAdapter { + public static final class InstantTypeAdapter + extends TemporalAccessorTypeAdapter { - /** {@inheritDoc} */ - @Override - public void write(JsonWriter out, Instant value) throws IOException { - out.value(DateTimeFormatter.ISO_INSTANT.format(value)); + public InstantTypeAdapter() { + super(Instant::from, DateTimeFormatter.ISO_INSTANT); + } + } + + private abstract static class TemporalAccessorTypeAdapter< + T extends TemporalAccessor, + TTypeAdapter extends TemporalAccessorTypeAdapter > + extends TypeAdapter { + + private final TemporalQuery temporalQuery; + + private final DateTimeFormatter dateTimeFormatter; + + protected TemporalAccessorTypeAdapter( + TemporalQuery temporalQuery, DateTimeFormatter dateTimeFormatter) { + AssertTools.checkArgumentNotNull(dateTimeFormatter, "formatter must not be null."); + this.temporalQuery = temporalQuery; + this.dateTimeFormatter = dateTimeFormatter; } /** {@inheritDoc} */ @Override - public Instant read(JsonReader in) throws IOException { - return Instant.parse(in.nextString()); + public void write(JsonWriter out, T value) throws IOException { + out.value(dateTimeFormatter.format(value)); + } + + /** {@inheritDoc} */ + @Override + public T read(JsonReader in) throws IOException { + return dateTimeFormatter.parse(in.nextString(), temporalQuery); } } From e2e5f50162862166320f1b34d11dec6918a17b55 Mon Sep 17 00:00:00 2001 From: ZhouXY108 Date: Thu, 12 Jun 2025 16:11:53 +0800 Subject: [PATCH 16/16] =?UTF-8?q?refactor:=20`AssertTools`=20=E7=B1=BB?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E6=96=B9=E6=B3=95=E4=BD=BF=E7=94=A8=E9=9D=99?= =?UTF-8?q?=E6=80=81=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gson/adapter/JSR310TypeAdapters.java | 6 +- .../model/Chinese2ndGenIDCardNumber.java | 9 +-- .../zhouxy/plusone/commons/model/Gender.java | 5 +- .../model/ValidatableStringRecord.java | 9 +-- .../dto/PagingAndSortingQueryParams.java | 19 +++--- .../zhouxy/plusone/commons/time/Quarter.java | 8 ++- .../plusone/commons/time/YearQuarter.java | 10 +-- .../plusone/commons/util/ArrayTools.java | 67 ++++++++++--------- .../plusone/commons/util/AssertTools.java | 8 +-- .../plusone/commons/util/BigDecimals.java | 18 ++--- .../plusone/commons/util/EnumTools.java | 23 ++++--- .../plusone/commons/util/Enumeration.java | 6 +- .../plusone/commons/util/IdGenerator.java | 5 +- .../plusone/commons/util/RandomTools.java | 30 +++++---- .../plusone/commons/util/RegexTools.java | 21 +++--- .../commons/util/SnowflakeIdGenerator.java | 6 +- .../plusone/commons/util/StringTools.java | 8 ++- .../plusone/commons/util/TreeBuilder.java | 6 +- .../plusone/commons/base/IWithCodeTests.java | 4 +- 19 files changed, 148 insertions(+), 120 deletions(-) diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/gson/adapter/JSR310TypeAdapters.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/gson/adapter/JSR310TypeAdapters.java index 68428f1..8d854c0 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/gson/adapter/JSR310TypeAdapters.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/gson/adapter/JSR310TypeAdapters.java @@ -15,6 +15,8 @@ */ package xyz.zhouxy.plusone.commons.gson.adapter; +import static xyz.zhouxy.plusone.commons.util.AssertTools.checkArgumentNotNull; + import java.io.IOException; import java.time.Instant; import java.time.LocalDate; @@ -28,8 +30,6 @@ import com.google.gson.TypeAdapter; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import xyz.zhouxy.plusone.commons.util.AssertTools; - /** * 包含 JSR-310 相关数据类型的 {@code TypeAdapter} * @@ -145,7 +145,7 @@ public class JSR310TypeAdapters { protected TemporalAccessorTypeAdapter( TemporalQuery temporalQuery, DateTimeFormatter dateTimeFormatter) { - AssertTools.checkArgumentNotNull(dateTimeFormatter, "formatter must not be null."); + checkArgumentNotNull(dateTimeFormatter, "formatter must not be null."); this.temporalQuery = temporalQuery; this.dateTimeFormatter = dateTimeFormatter; } diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/Chinese2ndGenIDCardNumber.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/Chinese2ndGenIDCardNumber.java index e925fed..611780e 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/Chinese2ndGenIDCardNumber.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/Chinese2ndGenIDCardNumber.java @@ -16,6 +16,8 @@ package xyz.zhouxy.plusone.commons.model; +import static xyz.zhouxy.plusone.commons.util.AssertTools.checkArgument; + import java.io.Serializable; import java.time.LocalDate; import java.time.format.DateTimeFormatter; @@ -32,7 +34,6 @@ import com.google.errorprone.annotations.Immutable; import xyz.zhouxy.plusone.commons.annotation.ReaderMethod; import xyz.zhouxy.plusone.commons.annotation.ValueObject; import xyz.zhouxy.plusone.commons.constant.PatternConsts; -import xyz.zhouxy.plusone.commons.util.AssertTools; import xyz.zhouxy.plusone.commons.util.StringTools; /** @@ -86,13 +87,13 @@ public class Chinese2ndGenIDCardNumber */ public static Chinese2ndGenIDCardNumber of(final String idCardNumber) { try { - AssertTools.checkArgument(StringTools.isNotBlank(idCardNumber), "二代居民身份证校验失败:号码为空"); + checkArgument(StringTools.isNotBlank(idCardNumber), "二代居民身份证校验失败:号码为空"); final String value = idCardNumber.toUpperCase(); final Matcher matcher = PatternConsts.CHINESE_2ND_ID_CARD_NUMBER.matcher(value); - AssertTools.checkArgument(matcher.matches(), () -> "二代居民身份证校验失败:" + value); + checkArgument(matcher.matches(), () -> "二代居民身份证校验失败:" + value); final String provinceCode = matcher.group("province"); - AssertTools.checkArgument(Chinese2ndGenIDCardNumber.PROVINCE_CODES.containsKey(provinceCode)); + checkArgument(Chinese2ndGenIDCardNumber.PROVINCE_CODES.containsKey(provinceCode)); final String cityCode = matcher.group("city"); final String countyCode = matcher.group("county"); diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/Gender.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/Gender.java index 87a1f6b..f236a9f 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/Gender.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/Gender.java @@ -16,8 +16,9 @@ package xyz.zhouxy.plusone.commons.model; +import static xyz.zhouxy.plusone.commons.util.AssertTools.checkCondition; + import xyz.zhouxy.plusone.commons.base.IWithIntCode; -import xyz.zhouxy.plusone.commons.util.AssertTools; /** * 性别 @@ -50,7 +51,7 @@ public enum Gender implements IWithIntCode { * @return 枚举值 */ public static Gender of(int value) { - AssertTools.checkCondition(0 <= value && value < VALUES.length, + checkCondition(0 <= value && value < VALUES.length, () -> new EnumConstantNotPresentException(Gender.class, String.valueOf(value))); return VALUES[value]; } diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/ValidatableStringRecord.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/ValidatableStringRecord.java index 48aeb78..87fac4a 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/ValidatableStringRecord.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/model/ValidatableStringRecord.java @@ -16,6 +16,8 @@ package xyz.zhouxy.plusone.commons.model; +import static xyz.zhouxy.plusone.commons.util.AssertTools.checkArgument; + import java.util.Objects; import java.util.function.Supplier; import java.util.regex.Matcher; @@ -25,7 +27,6 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; import xyz.zhouxy.plusone.commons.annotation.ReaderMethod; -import xyz.zhouxy.plusone.commons.util.AssertTools; /** * 带校验的字符串值对象 @@ -74,10 +75,10 @@ public abstract class ValidatableStringRecord sortableProperties) { - AssertTools.checkArgument(CollectionTools.isNotEmpty(sortableProperties), + checkArgument(CollectionTools.isNotEmpty(sortableProperties), "Sortable properties can not be empty."); sortableProperties.forEach((k, v) -> - AssertTools.checkArgument(StringTools.isNotBlank(k) && StringTools.isNotBlank(v), + checkArgument(StringTools.isNotBlank(k) && StringTools.isNotBlank(v), "Property name must not be blank.")); this.sortableProperties = ImmutableMap.copyOf(sortableProperties); } @@ -107,7 +108,7 @@ public class PagingAndSortingQueryParams { public final PagingParams buildPagingParams() { final int sizeValue = this.size != null ? this.size : defaultSizeInternal(); final long pageNumValue = this.pageNum != null ? this.pageNum : 1L; - AssertTools.checkArgument(CollectionTools.isNotEmpty(this.orderBy), + checkArgument(CollectionTools.isNotEmpty(this.orderBy), "The 'orderBy' cannot be empty"); final List propertiesToSort = this.orderBy.stream() .map(this::generateSortableProperty) @@ -138,13 +139,13 @@ public class PagingAndSortingQueryParams { } private SortableProperty generateSortableProperty(String orderByStr) { - AssertTools.checkArgument(StringTools.isNotBlank(orderByStr)); - AssertTools.checkArgument(RegexTools.matches(orderByStr, SORT_STR_PATTERN)); + checkArgument(StringTools.isNotBlank(orderByStr)); + checkArgument(RegexTools.matches(orderByStr, SORT_STR_PATTERN)); String[] propertyNameAndOrderType = orderByStr.split("-"); - AssertTools.checkArgument(propertyNameAndOrderType.length == 2); + checkArgument(propertyNameAndOrderType.length == 2); String propertyName = propertyNameAndOrderType[0]; - AssertTools.checkArgument(sortableProperties.containsKey(propertyName), + checkArgument(sortableProperties.containsKey(propertyName), "The property name must be in the set of sortable properties."); String columnName = sortableProperties.get(propertyName); String orderType = propertyNameAndOrderType[1]; @@ -164,7 +165,7 @@ public class PagingAndSortingQueryParams { SortableProperty(String propertyName, String columnName, String orderType) { this.propertyName = propertyName; this.columnName = columnName; - AssertTools.checkArgument("ASC".equalsIgnoreCase(orderType) || "DESC".equalsIgnoreCase(orderType)); + checkArgument("ASC".equalsIgnoreCase(orderType) || "DESC".equalsIgnoreCase(orderType)); this.orderType = orderType.toUpperCase(); this.sqlSnippet = this.propertyName + " " + this.orderType; diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/time/Quarter.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/time/Quarter.java index e05dcce..59b17e4 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/time/Quarter.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/time/Quarter.java @@ -16,6 +16,9 @@ package xyz.zhouxy.plusone.commons.time; +import static xyz.zhouxy.plusone.commons.util.AssertTools.checkNotNull; +import static xyz.zhouxy.plusone.commons.util.AssertTools.checkCondition; + import java.time.DateTimeException; import java.time.Month; import java.time.MonthDay; @@ -25,7 +28,6 @@ import com.google.common.collect.Range; import xyz.zhouxy.plusone.commons.annotation.StaticFactoryMethod; import xyz.zhouxy.plusone.commons.base.IWithIntCode; -import xyz.zhouxy.plusone.commons.util.AssertTools; /** * 季度 @@ -89,7 +91,7 @@ public enum Quarter implements IWithIntCode { */ @StaticFactoryMethod(Quarter.class) public static Quarter fromMonth(Month month) { - AssertTools.checkNotNull(month); + checkNotNull(month); final int monthValue = month.getValue(); return of(computeQuarterValueInternal(monthValue)); } @@ -246,7 +248,7 @@ public enum Quarter implements IWithIntCode { * @throws DateTimeException 如果给定的季度值不在有效范围内(1到4),将抛出异常 */ public static int checkValidIntValue(int value) { - AssertTools.checkCondition(value >= 1 && value <= 4, + checkCondition(value >= 1 && value <= 4, () -> new DateTimeException("Invalid value for Quarter: " + value)); return value; } diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/time/YearQuarter.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/time/YearQuarter.java index c90523f..234e255 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/time/YearQuarter.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/time/YearQuarter.java @@ -17,6 +17,7 @@ package xyz.zhouxy.plusone.commons.time; import static java.time.temporal.ChronoField.YEAR; +import static xyz.zhouxy.plusone.commons.util.AssertTools.checkNotNull; import java.io.Serializable; import java.time.LocalDate; @@ -32,7 +33,6 @@ import javax.annotation.Nullable; import com.google.errorprone.annotations.Immutable; import xyz.zhouxy.plusone.commons.annotation.StaticFactoryMethod; -import xyz.zhouxy.plusone.commons.util.AssertTools; /** * 表示年份与季度 @@ -93,7 +93,7 @@ public final class YearQuarter implements Comparable , Serializable */ @StaticFactoryMethod(YearQuarter.class) public static YearQuarter of(LocalDate date) { - AssertTools.checkNotNull(date); + checkNotNull(date); return new YearQuarter(date.getYear(), Quarter.fromMonth(date.getMonth())); } @@ -105,7 +105,7 @@ public final class YearQuarter implements Comparable , Serializable */ @StaticFactoryMethod(YearQuarter.class) public static YearQuarter of(Date date) { - AssertTools.checkNotNull(date); + checkNotNull(date); @SuppressWarnings("deprecation") final int yearValue = YEAR.checkValidIntValue(date.getYear() + 1900L); @SuppressWarnings("deprecation") @@ -121,7 +121,7 @@ public final class YearQuarter implements Comparable , Serializable */ @StaticFactoryMethod(YearQuarter.class) public static YearQuarter of(Calendar date) { - AssertTools.checkNotNull(date); + checkNotNull(date); final int yearValue = ChronoField.YEAR.checkValidIntValue(date.get(Calendar.YEAR)); final int monthValue = date.get(Calendar.MONTH) + 1; return new YearQuarter(yearValue, Quarter.fromMonth(monthValue)); @@ -135,7 +135,7 @@ public final class YearQuarter implements Comparable , Serializable */ @StaticFactoryMethod(YearQuarter.class) public static YearQuarter of(YearMonth yearMonth) { - AssertTools.checkNotNull(yearMonth); + checkNotNull(yearMonth); return of(yearMonth.getYear(), Quarter.fromMonth(yearMonth.getMonth())); } diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/ArrayTools.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/ArrayTools.java index 6f953a7..5bfb4bd 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/ArrayTools.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/ArrayTools.java @@ -16,6 +16,9 @@ package xyz.zhouxy.plusone.commons.util; +import static xyz.zhouxy.plusone.commons.util.AssertTools.checkArgument; +import static xyz.zhouxy.plusone.commons.util.AssertTools.checkNotNull; + import java.math.BigDecimal; import java.util.ArrayList; import java.util.Arrays; @@ -258,7 +261,7 @@ public class ArrayTools { * @throws IllegalArgumentException 当参数为空时抛出 */ public static boolean isAllElementsNotNull(final T[] arr) { - AssertTools.checkArgument(arr != null, "The array cannot be null."); + checkArgument(arr != null, "The array cannot be null."); return Arrays.stream(arr).allMatch(Objects::nonNull); } @@ -488,10 +491,10 @@ public class ArrayTools { * @return 重复后的数组 */ public static char[] repeat(char[] arr, int times, int maxLength) { - AssertTools.checkArgument(Objects.nonNull(arr)); - AssertTools.checkArgument(times >= 0, + checkArgument(Objects.nonNull(arr)); + checkArgument(times >= 0, "The number of times must be greater than or equal to zero"); - AssertTools.checkArgument(maxLength >= 0, + checkArgument(maxLength >= 0, "The max length must be greater than or equal to zero"); if (times == 0) { return EMPTY_CHAR_ARRAY; @@ -523,10 +526,10 @@ public class ArrayTools { * @return 重复后的数组 */ public static byte[] repeat(byte[] arr, int times, int maxLength) { - AssertTools.checkArgument(Objects.nonNull(arr)); - AssertTools.checkArgument(times >= 0, + checkArgument(Objects.nonNull(arr)); + checkArgument(times >= 0, "The number of times must be greater than or equal to zero"); - AssertTools.checkArgument(maxLength >= 0, + checkArgument(maxLength >= 0, "The max length must be greater than or equal to zero"); if (times == 0) { return EMPTY_BYTE_ARRAY; @@ -558,10 +561,10 @@ public class ArrayTools { * @return 重复后的数组 */ public static short[] repeat(short[] arr, int times, int maxLength) { - AssertTools.checkArgument(Objects.nonNull(arr)); - AssertTools.checkArgument(times >= 0, + checkArgument(Objects.nonNull(arr)); + checkArgument(times >= 0, "The number of times must be greater than or equal to zero"); - AssertTools.checkArgument(maxLength >= 0, + checkArgument(maxLength >= 0, "The max length must be greater than or equal to zero"); if (times == 0) { return EMPTY_SHORT_ARRAY; @@ -593,10 +596,10 @@ public class ArrayTools { * @return 重复后的数组 */ public static int[] repeat(int[] arr, int times, int maxLength) { - AssertTools.checkArgument(Objects.nonNull(arr)); - AssertTools.checkArgument(times >= 0, + checkArgument(Objects.nonNull(arr)); + checkArgument(times >= 0, "The number of times must be greater than or equal to zero"); - AssertTools.checkArgument(maxLength >= 0, + checkArgument(maxLength >= 0, "The max length must be greater than or equal to zero"); if (times == 0) { return EMPTY_INT_ARRAY; @@ -628,10 +631,10 @@ public class ArrayTools { * @return 重复后的数组 */ public static long[] repeat(long[] arr, int times, int maxLength) { - AssertTools.checkArgument(Objects.nonNull(arr)); - AssertTools.checkArgument(times >= 0, + checkArgument(Objects.nonNull(arr)); + checkArgument(times >= 0, "The number of times must be greater than or equal to zero"); - AssertTools.checkArgument(maxLength >= 0, + checkArgument(maxLength >= 0, "The max length must be greater than or equal to zero"); if (times == 0) { return EMPTY_LONG_ARRAY; @@ -663,10 +666,10 @@ public class ArrayTools { * @return 重复后的数组 */ public static float[] repeat(float[] arr, int times, int maxLength) { - AssertTools.checkArgument(Objects.nonNull(arr)); - AssertTools.checkArgument(times >= 0, + checkArgument(Objects.nonNull(arr)); + checkArgument(times >= 0, "The number of times must be greater than or equal to zero"); - AssertTools.checkArgument(maxLength >= 0, + checkArgument(maxLength >= 0, "The max length must be greater than or equal to zero"); if (times == 0) { return EMPTY_FLOAT_ARRAY; @@ -698,10 +701,10 @@ public class ArrayTools { * @return 重复后的数组 */ public static double[] repeat(double[] arr, int times, int maxLength) { - AssertTools.checkArgument(Objects.nonNull(arr)); - AssertTools.checkArgument(times >= 0, + checkArgument(Objects.nonNull(arr)); + checkArgument(times >= 0, "The number of times must be greater than or equal to zero"); - AssertTools.checkArgument(maxLength >= 0, + checkArgument(maxLength >= 0, "The max length must be greater than or equal to zero"); if (times == 0) { return EMPTY_DOUBLE_ARRAY; @@ -747,7 +750,7 @@ public class ArrayTools { * @param values 填充内容 */ public static void fill(char[] a, int fromIndex, int toIndex, @Nullable char[] values) { - AssertTools.checkArgument(Objects.nonNull(a)); + checkArgument(Objects.nonNull(a)); if (values == null || values.length == 0) { return; } @@ -790,7 +793,7 @@ public class ArrayTools { * @param values 填充内容 */ public static void fill(byte[] a, int fromIndex, int toIndex, @Nullable byte[] values) { - AssertTools.checkArgument(Objects.nonNull(a)); + checkArgument(Objects.nonNull(a)); if (values == null || values.length == 0) { return; } @@ -833,7 +836,7 @@ public class ArrayTools { * @param values 填充内容 */ public static void fill(short[] a, int fromIndex, int toIndex, @Nullable short[] values) { - AssertTools.checkArgument(Objects.nonNull(a)); + checkArgument(Objects.nonNull(a)); if (values == null || values.length == 0) { return; } @@ -876,7 +879,7 @@ public class ArrayTools { * @param values 填充内容 */ public static void fill(int[] a, int fromIndex, int toIndex, @Nullable int[] values) { - AssertTools.checkArgument(Objects.nonNull(a)); + checkArgument(Objects.nonNull(a)); if (values == null || values.length == 0) { return; } @@ -919,7 +922,7 @@ public class ArrayTools { * @param values 填充内容 */ public static void fill(long[] a, int fromIndex, int toIndex, @Nullable long[] values) { - AssertTools.checkArgument(Objects.nonNull(a)); + checkArgument(Objects.nonNull(a)); if (values == null || values.length == 0) { return; } @@ -962,7 +965,7 @@ public class ArrayTools { * @param values 填充内容 */ public static void fill(float[] a, int fromIndex, int toIndex, @Nullable float[] values) { - AssertTools.checkArgument(Objects.nonNull(a)); + checkArgument(Objects.nonNull(a)); if (values == null || values.length == 0) { return; } @@ -1005,7 +1008,7 @@ public class ArrayTools { * @param values 填充内容 */ public static void fill(double[] a, int fromIndex, int toIndex, @Nullable double[] values) { - AssertTools.checkArgument(Objects.nonNull(a)); + checkArgument(Objects.nonNull(a)); if (values == null || values.length == 0) { return; } @@ -1060,7 +1063,7 @@ public class ArrayTools { * @param values 填充内容 */ private static void fillInternal(T[] a, int fromIndex, int toIndex, @Nullable T[] values) { - AssertTools.checkArgument(Objects.nonNull(a)); + checkArgument(Objects.nonNull(a)); if (values == null || values.length == 0) { return; } @@ -1087,7 +1090,7 @@ public class ArrayTools { // #region - indexOf public static int indexOf(@Nullable T[] arr, Predicate super T> predicate) { - AssertTools.checkNotNull(predicate); + checkNotNull(predicate); if (arr == null || arr.length == 0) { return NOT_FOUND_INDEX; } @@ -1192,7 +1195,7 @@ public class ArrayTools { // #region - lastIndexOf public static int lastIndexOf(@Nullable T[] arr, Predicate super T> predicate) { - AssertTools.checkNotNull(predicate); + checkNotNull(predicate); if (arr == null || arr.length == 0) { return NOT_FOUND_INDEX; } diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/AssertTools.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/AssertTools.java index 268e764..7313d4a 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/AssertTools.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/AssertTools.java @@ -31,11 +31,11 @@ import xyz.zhouxy.plusone.commons.exception.system.DataOperationResultException; * 本工具类不封装过多判断逻辑,鼓励充分使用项目中的工具类进行逻辑判断。 * * - * 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), + * checkArgument(StringUtils.hasText(str), "The argument cannot be blank."); + * checkState(ArrayUtils.isNotEmpty(result), "The result cannot be empty."); + * checkCondition(!CollectionUtils.isEmpty(roles), * () -> new InvalidInputException("The roles cannot be empty.")); - * AssertTools.checkCondition(RegexTools.matches(email, PatternConsts.EMAIL), + * checkCondition(RegexTools.matches(email, PatternConsts.EMAIL), * "must be a well-formed email address"); ** diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/BigDecimals.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/BigDecimals.java index e3439f4..c2e1bd0 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/BigDecimals.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/BigDecimals.java @@ -16,6 +16,8 @@ package xyz.zhouxy.plusone.commons.util; +import static xyz.zhouxy.plusone.commons.util.AssertTools.checkNotNull; + import java.math.BigDecimal; import javax.annotation.Nonnull; @@ -53,8 +55,8 @@ public class BigDecimals { * @return 当 {@code a} 大于 {@code b} 时返回 {@code true} */ public static boolean gt(BigDecimal a, BigDecimal b) { - AssertTools.checkNotNull(a, "Parameter could not be null."); - AssertTools.checkNotNull(b, "Parameter could not be null."); + checkNotNull(a, "Parameter could not be null."); + checkNotNull(b, "Parameter could not be null."); return (a != b) && (a.compareTo(b) > 0); } @@ -66,8 +68,8 @@ public class BigDecimals { * @return 当 {@code a} 大于等于 {@code b} 时返回 {@code true} */ public static boolean ge(BigDecimal a, BigDecimal b) { - AssertTools.checkNotNull(a, "Parameter could not be null."); - AssertTools.checkNotNull(b, "Parameter could not be null."); + checkNotNull(a, "Parameter could not be null."); + checkNotNull(b, "Parameter could not be null."); return (a == b) || (a.compareTo(b) >= 0); } @@ -79,8 +81,8 @@ public class BigDecimals { * @return 当 {@code a} 小于 {@code b} 时返回 {@code true} */ public static boolean lt(BigDecimal a, BigDecimal b) { - AssertTools.checkNotNull(a, "Parameter could not be null."); - AssertTools.checkNotNull(b, "Parameter could not be null."); + checkNotNull(a, "Parameter could not be null."); + checkNotNull(b, "Parameter could not be null."); return (a != b) && (a.compareTo(b) < 0); } @@ -92,8 +94,8 @@ public class BigDecimals { * @return 当 {@code a} 小于等于 {@code b} 时返回 {@code true} */ public static boolean le(BigDecimal a, BigDecimal b) { - AssertTools.checkNotNull(a, "Parameter could not be null."); - AssertTools.checkNotNull(b, "Parameter could not be null."); + checkNotNull(a, "Parameter could not be null."); + checkNotNull(b, "Parameter could not be null."); return (a == b) || (a.compareTo(b) <= 0); } diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/EnumTools.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/EnumTools.java index ef91118..99bc6f1 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/EnumTools.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/EnumTools.java @@ -16,6 +16,9 @@ package xyz.zhouxy.plusone.commons.util; +import static xyz.zhouxy.plusone.commons.util.AssertTools.checkCondition; +import static xyz.zhouxy.plusone.commons.util.AssertTools.checkNotNull; + import java.util.function.Supplier; import javax.annotation.Nullable; @@ -43,7 +46,7 @@ public final class EnumTools { @Deprecated private static> E valueOfInternal(Class enumType, int ordinal) { // NOSONAR 该方法弃用,但不删掉 E[] values = enumType.getEnumConstants(); - AssertTools.checkCondition((ordinal >= 0 && ordinal < values.length), + checkCondition((ordinal >= 0 && ordinal < values.length), () -> new EnumConstantNotPresentException(enumType, Integer.toString(ordinal))); return values[ordinal]; } @@ -59,7 +62,7 @@ public final class EnumTools { */ @Deprecated public static > E valueOf(Class enumType, int ordinal) { // NOSONAR 该方法弃用,但不删掉 - AssertTools.checkNotNull(enumType, "Enum type must not be null."); + checkNotNull(enumType, "Enum type must not be null."); return valueOfInternal(enumType, ordinal); } @@ -76,7 +79,7 @@ public final class EnumTools { @Deprecated public static > E valueOf(Class enumType, // NOSONAR 该方法弃用,但不删掉 @Nullable Integer ordinal, @Nullable E defaultValue) { - AssertTools.checkNotNull(enumType); + checkNotNull(enumType); return null == ordinal ? defaultValue : valueOfInternal(enumType, ordinal); } @@ -95,8 +98,8 @@ public final class EnumTools { Class enumType, @Nullable Integer ordinal, Supplier defaultValue) { - AssertTools.checkNotNull(enumType); - AssertTools.checkNotNull(defaultValue); + checkNotNull(enumType); + checkNotNull(defaultValue); return null == ordinal ? defaultValue.get() : valueOfInternal(enumType, ordinal); } @@ -112,7 +115,7 @@ public final class EnumTools { @Deprecated public static > E getValueOrDefault(Class enumType, @Nullable Integer ordinal) { // NOSONAR 该方法弃用,但不删掉 return getValueOrDefault(enumType, ordinal, () -> { - AssertTools.checkNotNull(enumType, "Enum type must not be null."); + checkNotNull(enumType, "Enum type must not be null."); E[] values = enumType.getEnumConstants(); return values[0]; }); @@ -133,10 +136,10 @@ public final class EnumTools { } public static > Integer checkOrdinal(Class enumType, Integer ordinal) { - AssertTools.checkNotNull(enumType, "Enum type must not be null."); - AssertTools.checkNotNull(ordinal, "Ordinal must not be null."); + checkNotNull(enumType, "Enum type must not be null."); + checkNotNull(ordinal, "Ordinal must not be null."); E[] values = enumType.getEnumConstants(); - AssertTools.checkCondition(ordinal >= 0 && ordinal < values.length, + checkCondition(ordinal >= 0 && ordinal < values.length, () -> new EnumConstantNotPresentException(enumType, Integer.toString(ordinal))); return ordinal; } @@ -180,7 +183,7 @@ public final class EnumTools { Class enumType, @Nullable Integer ordinal, @Nullable Integer defaultValue) { - AssertTools.checkNotNull(enumType); + checkNotNull(enumType); return checkOrdinalOrGetInternal(enumType, ordinal, () -> checkOrdinalOrDefaultInternal(enumType, defaultValue, null)); } diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/Enumeration.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/Enumeration.java index ffef722..7ce1547 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/Enumeration.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/Enumeration.java @@ -16,6 +16,8 @@ package xyz.zhouxy.plusone.commons.util; +import static xyz.zhouxy.plusone.commons.util.AssertTools.checkArgument; + import java.util.Arrays; import java.util.Collection; import java.util.Collections; @@ -44,7 +46,7 @@ public abstract class Enumeration > // NOSONAR 暂不移 protected final String name; protected Enumeration(final int id, final String name) { - AssertTools.checkArgument(StringTools.isNotBlank(name), "Name of enumeration must has text."); + checkArgument(StringTools.isNotBlank(name), "Name of enumeration must has text."); this.id = id; this.name = name; } @@ -126,7 +128,7 @@ public abstract class Enumeration > // NOSONAR 暂不移 * @return 枚举对象 */ public T get(int id) { - AssertTools.checkArgument(this.valueMap.containsKey(id), "[%s] 对应的值不存在", id); + checkArgument(this.valueMap.containsKey(id), "[%s] 对应的值不存在", id); return this.valueMap.get(id); } diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/IdGenerator.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/IdGenerator.java index fd90391..c54c9e6 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/IdGenerator.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/IdGenerator.java @@ -16,8 +16,9 @@ package xyz.zhouxy.plusone.commons.util; +import static xyz.zhouxy.plusone.commons.util.AssertTools.checkArgumentNotNull; + import java.util.Map; -import java.util.Objects; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; @@ -69,7 +70,7 @@ public class IdGenerator { * @return UUID 字符串 */ public static String toSimpleString(UUID uuid) { - AssertTools.checkArgument(Objects.nonNull(uuid)); + checkArgumentNotNull(uuid); return (uuidDigits(uuid.getMostSignificantBits() >> 32, 8) + uuidDigits(uuid.getMostSignificantBits() >> 16, 4) + uuidDigits(uuid.getMostSignificantBits(), 4) + diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/RandomTools.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/RandomTools.java index 1f7ca35..13650a9 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/RandomTools.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/RandomTools.java @@ -16,6 +16,8 @@ package xyz.zhouxy.plusone.commons.util; +import static xyz.zhouxy.plusone.commons.util.AssertTools.checkArgument; + import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.util.Objects; @@ -67,21 +69,21 @@ public final class RandomTools { * @return 随机字符串 */ public static String randomStr(Random random, char[] sourceCharacters, int length) { - AssertTools.checkArgument(Objects.nonNull(random), "Random cannot be null."); - AssertTools.checkArgument(Objects.nonNull(sourceCharacters), "Source characters cannot be null."); - AssertTools.checkArgument(length >= 0, "The length should be greater than or equal to zero."); + checkArgument(Objects.nonNull(random), "Random cannot be null."); + checkArgument(Objects.nonNull(sourceCharacters), "Source characters cannot be null."); + checkArgument(length >= 0, "The length should be greater than or equal to zero."); return randomStrInternal(random, sourceCharacters, length); } public static String randomStr(char[] sourceCharacters, int length) { - AssertTools.checkArgument(Objects.nonNull(sourceCharacters), "Source characters cannot be null."); - AssertTools.checkArgument(length >= 0, "The length should be greater than or equal to zero."); + checkArgument(Objects.nonNull(sourceCharacters), "Source characters cannot be null."); + checkArgument(length >= 0, "The length should be greater than or equal to zero."); return randomStrInternal(ThreadLocalRandom.current(), sourceCharacters, length); } public static String secureRandomStr(char[] sourceCharacters, int length) { - AssertTools.checkArgument(Objects.nonNull(sourceCharacters), "Source characters cannot be null."); - AssertTools.checkArgument(length >= 0, "The length should be greater than or equal to zero."); + checkArgument(Objects.nonNull(sourceCharacters), "Source characters cannot be null."); + checkArgument(length >= 0, "The length should be greater than or equal to zero."); return randomStrInternal(DEFAULT_SECURE_RANDOM, sourceCharacters, length); } @@ -96,21 +98,21 @@ public final class RandomTools { * @return 随机字符串 */ public static String randomStr(Random random, String sourceCharacters, int length) { - AssertTools.checkArgument(Objects.nonNull(random), "Random cannot be null."); - AssertTools.checkArgument(Objects.nonNull(sourceCharacters), "Source characters cannot be null."); - AssertTools.checkArgument(length >= 0, "The length should be greater than or equal to zero."); + checkArgument(Objects.nonNull(random), "Random cannot be null."); + checkArgument(Objects.nonNull(sourceCharacters), "Source characters cannot be null."); + checkArgument(length >= 0, "The length should be greater than or equal to zero."); return randomStrInternal(random, sourceCharacters, length); } public static String randomStr(String sourceCharacters, int length) { - AssertTools.checkArgument(Objects.nonNull(sourceCharacters), "Source characters cannot be null."); - AssertTools.checkArgument(length >= 0, "The length should be greater than or equal to zero."); + checkArgument(Objects.nonNull(sourceCharacters), "Source characters cannot be null."); + checkArgument(length >= 0, "The length should be greater than or equal to zero."); return randomStrInternal(ThreadLocalRandom.current(), sourceCharacters, length); } public static String secureRandomStr(String sourceCharacters, int length) { - AssertTools.checkArgument(Objects.nonNull(sourceCharacters), "Source characters cannot be null."); - AssertTools.checkArgument(length >= 0, "The length should be greater than or equal to zero."); + checkArgument(Objects.nonNull(sourceCharacters), "Source characters cannot be null."); + checkArgument(length >= 0, "The length should be greater than or equal to zero."); return randomStrInternal(DEFAULT_SECURE_RANDOM, sourceCharacters, length); } diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/RegexTools.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/RegexTools.java index 3f5b51d..216d54c 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/RegexTools.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/RegexTools.java @@ -16,6 +16,9 @@ package xyz.zhouxy.plusone.commons.util; +import static xyz.zhouxy.plusone.commons.util.AssertTools.checkArgument; +import static xyz.zhouxy.plusone.commons.util.AssertTools.checkNotNull; + import java.util.Arrays; import java.util.Objects; import java.util.Optional; @@ -72,7 +75,7 @@ public final class RegexTools { * @return {@link Pattern} 实例 */ public static Pattern getPattern(final String pattern, final int flags, final boolean cachePattern) { - AssertTools.checkNotNull(pattern); + checkNotNull(pattern); return cachePattern ? cacheAndGetPatternInternal(pattern, flags) : getPatternInternal(pattern, flags); } @@ -95,7 +98,7 @@ public final class RegexTools { */ @Nonnull public static Pattern getPattern(final String pattern, final int flags) { - AssertTools.checkNotNull(pattern); + checkNotNull(pattern); return getPatternInternal(pattern, flags); } @@ -115,7 +118,7 @@ public final class RegexTools { * @return 判断结果 */ public static boolean matches(@Nullable final CharSequence input, final Pattern pattern) { - AssertTools.checkNotNull(pattern); + checkNotNull(pattern); return matchesInternal(input, pattern); } @@ -127,7 +130,7 @@ public final class RegexTools { * @return 判断结果 */ public static boolean matchesAny(@Nullable final CharSequence input, final Pattern[] patterns) { - AssertTools.checkArgument(ArrayTools.isAllElementsNotNull(patterns)); + checkArgument(ArrayTools.isAllElementsNotNull(patterns)); return matchesAnyInternal(input, patterns); } @@ -139,7 +142,7 @@ public final class RegexTools { * @return 判断结果 */ public static boolean matchesAll(@Nullable final CharSequence input, final Pattern[] patterns) { - AssertTools.checkArgument(ArrayTools.isAllElementsNotNull(patterns)); + checkArgument(ArrayTools.isAllElementsNotNull(patterns)); return matchesAllInternal(input, patterns); } @@ -210,8 +213,8 @@ public final class RegexTools { * @return 结果 */ public static Matcher getMatcher(final CharSequence input, final Pattern pattern) { - AssertTools.checkNotNull(input); - AssertTools.checkNotNull(pattern); + checkNotNull(input); + checkNotNull(pattern); return pattern.matcher(input); } @@ -261,8 +264,8 @@ public final class RegexTools { * @return 结果 */ public static Matcher getMatcher(final CharSequence input, final String pattern, final int flags) { - AssertTools.checkNotNull(input); - AssertTools.checkNotNull(pattern); + checkNotNull(input); + checkNotNull(pattern); return getPatternInternal(pattern, flags).matcher(input); } diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/SnowflakeIdGenerator.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/SnowflakeIdGenerator.java index c8af751..5dda46e 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/SnowflakeIdGenerator.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/SnowflakeIdGenerator.java @@ -16,6 +16,8 @@ package xyz.zhouxy.plusone.commons.util; +import static xyz.zhouxy.plusone.commons.util.AssertTools.checkArgument; + import java.util.concurrent.TimeUnit; /** @@ -73,9 +75,9 @@ public class SnowflakeIdGenerator { * @param datacenterId 数据中心ID (0~31) */ public SnowflakeIdGenerator(final long workerId, final long datacenterId) { - AssertTools.checkArgument((workerId <= MAX_WORKER_ID && workerId >= 0), + checkArgument((workerId <= MAX_WORKER_ID && workerId >= 0), "WorkerId can't be greater than %s or less than 0.", MAX_WORKER_ID); - AssertTools.checkArgument((datacenterId <= MAX_DATACENTER_ID && datacenterId >= 0), + checkArgument((datacenterId <= MAX_DATACENTER_ID && datacenterId >= 0), "DatacenterId can't be greater than %s or less than 0.", MAX_DATACENTER_ID); this.datacenterIdAndWorkerId = (datacenterId << DATACENTER_ID_SHIFT) | (workerId << WORKER_ID_SHIFT); diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/StringTools.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/StringTools.java index 0a523d5..3fa2f1b 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/StringTools.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/StringTools.java @@ -16,6 +16,8 @@ package xyz.zhouxy.plusone.commons.util; +import static xyz.zhouxy.plusone.commons.util.AssertTools.checkArgument; + import java.net.MalformedURLException; import java.net.URL; import java.util.Objects; @@ -110,7 +112,7 @@ public class StringTools { * @return 结果 */ public static String repeat(final String str, int times, int maxLength) { - AssertTools.checkArgument(Objects.nonNull(str)); + checkArgument(Objects.nonNull(str)); return String.valueOf(ArrayTools.repeat(str.toCharArray(), times, maxLength)); } @@ -210,8 +212,8 @@ public class StringTools { if (src == null || src.isEmpty()) { return EMPTY_STRING; } - AssertTools.checkArgument(front >= 0 && end >= 0); - AssertTools.checkArgument((front + end) <= src.length(), "需要截取的长度不能大于原字符串长度"); + checkArgument(front >= 0 && end >= 0); + checkArgument((front + end) <= src.length(), "需要截取的长度不能大于原字符串长度"); final char[] charArray = src.toCharArray(); for (int i = front; i < charArray.length - end; i++) { charArray[i] = replacedChar; diff --git a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/TreeBuilder.java b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/TreeBuilder.java index d36bb1b..49b8495 100644 --- a/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/TreeBuilder.java +++ b/plusone-commons/src/main/java/xyz/zhouxy/plusone/commons/util/TreeBuilder.java @@ -16,6 +16,8 @@ package xyz.zhouxy.plusone.commons.util; +import static xyz.zhouxy.plusone.commons.util.AssertTools.checkNotNull; + import java.util.Collection; import java.util.Comparator; import java.util.List; @@ -76,7 +78,7 @@ public class TreeBuilder { * @param nodes 平铺的节点列表 */ public List buildTree(Collection nodes) { - AssertTools.checkNotNull(nodes); + checkNotNull(nodes); return buildTreeInternal(nodes, this.defaultComparator); } @@ -93,7 +95,7 @@ public class TreeBuilder { * 仅影响调用 addChild 的顺序,如果操作对象本身对应的控制了子节点的顺序,无法影响其相关逻辑。 */ public List buildTree(Collection nodes, @Nullable Comparator super T> comparator) { - AssertTools.checkNotNull(nodes); + checkNotNull(nodes); final Comparator super T> c = (comparator != null) ? comparator : this.defaultComparator; return buildTreeInternal(nodes, c); } diff --git a/plusone-commons/src/test/java/xyz/zhouxy/plusone/commons/base/IWithCodeTests.java b/plusone-commons/src/test/java/xyz/zhouxy/plusone/commons/base/IWithCodeTests.java index b1f4a8f..3f5e675 100644 --- a/plusone-commons/src/test/java/xyz/zhouxy/plusone/commons/base/IWithCodeTests.java +++ b/plusone-commons/src/test/java/xyz/zhouxy/plusone/commons/base/IWithCodeTests.java @@ -17,12 +17,12 @@ package xyz.zhouxy.plusone.commons.base; import static org.junit.jupiter.api.Assertions.*; +import static xyz.zhouxy.plusone.commons.util.AssertTools.checkNotNull; import javax.annotation.Nonnull; import org.junit.jupiter.api.Test; -import xyz.zhouxy.plusone.commons.util.AssertTools; class IWithCodeTests { @@ -91,7 +91,7 @@ class IWithCodeTests { private final String code; WithCode(String code) { - AssertTools.checkNotNull(code); + checkNotNull(code); this.code = code; }