From f4b7005b92d93e3285d4407613ea3d5bad719333 Mon Sep 17 00:00:00 2001 From: ZhouXY108 Date: Mon, 21 Oct 2024 23:17:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../annotation/UnsupportedOperation.java | 2 +- .../xyz/zhouxy/plusone/commons/base/Ref.java | 2 +- .../model/Chinese2ndGenIDCardNumber.java | 1 - .../zhouxy/plusone/commons/model/Gender.java | 2 + .../commons/model/dto/UnifiedResponse.java | 2 +- .../xyz/zhouxy/plusone/commons/sql/SQL.java | 2 +- .../zhouxy/plusone/commons/time/Quarter.java | 12 +- .../plusone/commons/time/YearQuarter.java | 34 ++++-- .../plusone/commons/util/AssertTools.java | 6 +- .../plusone/commons/util/BigDecimals.java | 7 +- .../commons/util/ConcurrentHashMapTools.java | 2 +- .../plusone/commons/util/DateTimeTools.java | 108 +++++++++--------- .../plusone/commons/util/EnumTools.java | 6 +- .../plusone/commons/util/OptionalTools.java | 14 +-- .../plusone/commons/util/RegexTools.java | 53 +++++---- .../plusone/commons/util/TreeBuilder.java | 6 +- 16 files changed, 139 insertions(+), 120 deletions(-) diff --git a/src/main/java/xyz/zhouxy/plusone/commons/annotation/UnsupportedOperation.java b/src/main/java/xyz/zhouxy/plusone/commons/annotation/UnsupportedOperation.java index 116af61..67a19ef 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/annotation/UnsupportedOperation.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/annotation/UnsupportedOperation.java @@ -27,7 +27,7 @@ import java.lang.annotation.Documented; * *

标识方法为不支持的操作。该方法将抛出 {@link UnsupportedOperationException}。 * - * @author zhouxy + * @author ZhouXY * @version 1.0 * @since 1.0 * @see UnsupportedOperationException diff --git a/src/main/java/xyz/zhouxy/plusone/commons/base/Ref.java b/src/main/java/xyz/zhouxy/plusone/commons/base/Ref.java index 7fd9095..94c5ee4 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/base/Ref.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/base/Ref.java @@ -55,7 +55,7 @@ public final class Ref { return this.value != null; } - public void execute(Consumer consumer) { + public void execute(Consumer consumer) { consumer.accept(value); } diff --git a/src/main/java/xyz/zhouxy/plusone/commons/model/Chinese2ndGenIDCardNumber.java b/src/main/java/xyz/zhouxy/plusone/commons/model/Chinese2ndGenIDCardNumber.java index cfbcf0b..c6ad7a7 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/model/Chinese2ndGenIDCardNumber.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/model/Chinese2ndGenIDCardNumber.java @@ -14,7 +14,6 @@ * limitations under the License. */ - package xyz.zhouxy.plusone.commons.model; import java.time.LocalDate; diff --git a/src/main/java/xyz/zhouxy/plusone/commons/model/Gender.java b/src/main/java/xyz/zhouxy/plusone/commons/model/Gender.java index 425d9af..24dbeb9 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/model/Gender.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/model/Gender.java @@ -20,6 +20,8 @@ import xyz.zhouxy.plusone.commons.util.AssertTools; /** * 性别 + * + * @author ZhouXY */ public enum Gender { UNKNOWN(0, "Unknown", "未知"), diff --git a/src/main/java/xyz/zhouxy/plusone/commons/model/dto/UnifiedResponse.java b/src/main/java/xyz/zhouxy/plusone/commons/model/dto/UnifiedResponse.java index 707affa..143fc86 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/model/dto/UnifiedResponse.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/model/dto/UnifiedResponse.java @@ -194,7 +194,7 @@ public abstract class UnifiedResponse { /** * 自定义结果 * - * @author zhouxy + * @author ZhouXY */ protected static class CustomResult extends UnifiedResponse { diff --git a/src/main/java/xyz/zhouxy/plusone/commons/sql/SQL.java b/src/main/java/xyz/zhouxy/plusone/commons/sql/SQL.java index 77c9c69..b0ef318 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/sql/SQL.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/sql/SQL.java @@ -21,7 +21,7 @@ import org.apache.ibatis.jdbc.AbstractSQL; import com.google.common.annotations.Beta; /** - * @author ZhouXY + * @author ZhouXY */ @Beta public abstract class SQL extends AbstractSQL { diff --git a/src/main/java/xyz/zhouxy/plusone/commons/time/Quarter.java b/src/main/java/xyz/zhouxy/plusone/commons/time/Quarter.java index 3a2764a..db2a5f6 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/time/Quarter.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/time/Quarter.java @@ -26,8 +26,8 @@ import xyz.zhouxy.plusone.commons.util.Numbers; /** * 季度 - * - * @author zhouxy + * + * @author ZhouXY */ public enum Quarter { /** 第一季度 */ @@ -66,7 +66,7 @@ public enum Quarter { /** * 根据给定的月份值返回对应的季度 - * + * * @param monthValue 月份值,取值范围为1到12 * @return 对应的季度 * @throws IllegalArgumentException 如果月份值不在有效范围内(1到12),将抛出异常 @@ -79,7 +79,7 @@ public enum Quarter { /** * 根据给定的月份返回对应的季度 - * + * * @param month 月份 * @return 对应的季度 */ @@ -102,7 +102,7 @@ public enum Quarter { /** * 根据给定的季度值返回对应的季度 - * + * * @param value 季度值 (1/2/3/4) * @return 对应的季度 * @throws IllegalArgumentException 如果季度值不在有效范围内(1到4),将抛出异常 @@ -172,7 +172,7 @@ public enum Quarter { /** * 计算给定月份对应的季度值 - * + * * @param monthValue 月份值,取值范围为1到12 * @return 对应的季度值 */ diff --git a/src/main/java/xyz/zhouxy/plusone/commons/time/YearQuarter.java b/src/main/java/xyz/zhouxy/plusone/commons/time/YearQuarter.java index 7fc15a3..2925d99 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/time/YearQuarter.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/time/YearQuarter.java @@ -31,10 +31,12 @@ import javax.annotation.Nonnull; import com.google.common.base.Preconditions; import com.google.errorprone.annotations.Immutable; +import xyz.zhouxy.plusone.commons.annotation.StaticFactoryMethod; + /** * 表示年份与季度 * - * @author zhouxy + * @author ZhouXY */ @Immutable public final class YearQuarter implements Comparable, Serializable { @@ -57,6 +59,8 @@ public final class YearQuarter implements Comparable, Serializable this.lastDate = quarter.lastMonthDay().atYear(year); } + // #region - StaticFactoryMethod + /** * 根据指定年份与季度,创建 {@link YearQuarter} 实例 * @@ -64,6 +68,7 @@ public final class YearQuarter implements Comparable, Serializable * @param quarter 季度 * @return {@link YearQuarter} 实例 */ + @StaticFactoryMethod(YearQuarter.class) public static YearQuarter of(int year, int quarter) { return of(year, Quarter.of(quarter)); } @@ -75,6 +80,7 @@ public final class YearQuarter implements Comparable, Serializable * @param quarter 季度 * @return {@link YearQuarter} 实例 */ + @StaticFactoryMethod(YearQuarter.class) public static YearQuarter of(int year, @Nonnull Quarter quarter) { return new YearQuarter(year, quarter); } @@ -85,6 +91,7 @@ public final class YearQuarter implements Comparable, Serializable * @param date 日期 * @return {@link YearQuarter} 实例 */ + @StaticFactoryMethod(YearQuarter.class) public static YearQuarter of(@Nonnull LocalDate date) { return of(date.getYear(), Quarter.fromMonth(date.getMonth())); } @@ -95,6 +102,7 @@ public final class YearQuarter implements Comparable, Serializable * @param date 日期 * @return {@link YearQuarter} 实例 */ + @StaticFactoryMethod(YearQuarter.class) public static YearQuarter of(@Nonnull Date date) { @SuppressWarnings("deprecation") final int year = date.getYear() + 1900; @@ -109,6 +117,7 @@ public final class YearQuarter implements Comparable, Serializable * @param date 日期 * @return {@link YearQuarter} 实例 */ + @StaticFactoryMethod(YearQuarter.class) public static YearQuarter of(Calendar date) { return of(date.get(Calendar.YEAR), Quarter.fromMonth(date.get(Calendar.MONTH) + 1)); } @@ -119,11 +128,14 @@ public final class YearQuarter implements Comparable, Serializable * @param yearMonth 年月 * @return {@link YearQuarter} 实例 */ + @StaticFactoryMethod(YearQuarter.class) public static YearQuarter of(YearMonth yearMonth) { return of(yearMonth.getYear(), Quarter.fromMonth(yearMonth.getMonth())); } - // Getters + // #endregion + + // #region - Getters public int getYear() { return year; @@ -165,9 +177,9 @@ public final class YearQuarter implements Comparable, Serializable return lastDate; } - // Getters end + // #endregion - // computes + // #region - computes public YearQuarter plusQuarters(long quartersToAdd) { // TODO 单元测试 if (quartersToAdd == 0) { @@ -196,9 +208,9 @@ public final class YearQuarter implements Comparable, Serializable return plusYears(-yearsToAdd); } - // computes end + // #endregion - // hashCode & equals + // #region - hashCode & equals @Override public int hashCode() { @@ -217,7 +229,9 @@ public final class YearQuarter implements Comparable, Serializable return year == other.year && quarter == other.quarter; } - // compareTo + // #endregion + + // #region - compareTo @Override public int compareTo(YearQuarter other) { @@ -236,7 +250,9 @@ public final class YearQuarter implements Comparable, Serializable return this.compareTo(other) > 0; } - // toString + // #endregion + + // #region - toString /** * 返回 {@link YearQuarter} 的字符串表示形式,如 "2024 Q3" @@ -247,4 +263,6 @@ public final class YearQuarter implements Comparable, Serializable public String toString() { return this.year + " " + this.quarter.name(); } + + // #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 b2e5ea3..6fdc5e4 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/util/AssertTools.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/util/AssertTools.java @@ -24,17 +24,17 @@ 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."));
+ * AssertTools.checkCondition(RegexTools.matches(email, PatternConsts.EMAIL), "must be a well-formed email address");
  * 
* - * @author ZhouXY + * @author ZhouXY */ public class AssertTools { diff --git a/src/main/java/xyz/zhouxy/plusone/commons/util/BigDecimals.java b/src/main/java/xyz/zhouxy/plusone/commons/util/BigDecimals.java index ef39521..90a707e 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/util/BigDecimals.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/util/BigDecimals.java @@ -21,9 +21,9 @@ import javax.annotation.Nullable; import com.google.common.base.Preconditions; -public class BigDecimals { +import xyz.zhouxy.plusone.commons.annotation.StaticFactoryMethod; - public static final BigDecimal ZERO = new BigDecimal("0.00"); +public class BigDecimals { public static boolean equalsValue(@Nullable BigDecimal a, @Nullable BigDecimal b) { return (a == b) || (a != null && a.compareTo(b) == 0); @@ -49,8 +49,9 @@ public class BigDecimals { return lt(a, b) || equalsValue(a, b); } + @StaticFactoryMethod(BigDecimal.class) public static BigDecimal of(final String val) { - return (StringTools.isNotBlank(val)) ? new BigDecimal(val) : ZERO; + return (StringTools.isNotBlank(val)) ? new BigDecimal(val) : BigDecimal.ZERO; } private BigDecimals() { diff --git a/src/main/java/xyz/zhouxy/plusone/commons/util/ConcurrentHashMapTools.java b/src/main/java/xyz/zhouxy/plusone/commons/util/ConcurrentHashMapTools.java index 6498d0a..c36ecf0 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/util/ConcurrentHashMapTools.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/util/ConcurrentHashMapTools.java @@ -32,7 +32,7 @@ import xyz.zhouxy.plusone.commons.collection.SafeConcurrentHashMap; * *

* NOTE: 方法来自Dubbo,见:issues#2349 - * + * * @author ZhouXY * @since 1.0 * @see ConcurrentHashMap diff --git a/src/main/java/xyz/zhouxy/plusone/commons/util/DateTimeTools.java b/src/main/java/xyz/zhouxy/plusone/commons/util/DateTimeTools.java index 68672e4..c2597fe 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/util/DateTimeTools.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/util/DateTimeTools.java @@ -40,8 +40,8 @@ import xyz.zhouxy.plusone.commons.time.YearQuarter; /** * 日期时间工具类 - * - * @author zhouxy + * + * @author ZhouXY */ public class DateTimeTools { @@ -59,7 +59,7 @@ public class DateTimeTools { /** * 获取时间格式化器 - * + * * @param pattern 时间格式 * @return 时间格式化器 */ @@ -69,7 +69,7 @@ public class DateTimeTools { /** * 将日期时间转换为指定格式的字符串 - * + * * @param pattern 时间格式 * @param dateTime 日期时间 * @return 格式化的字符串 @@ -80,7 +80,7 @@ public class DateTimeTools { /** * 将时间戳转换为指定格式的字符串,使用系统默认时区 - * + * * @param pattern 时间格式 * @param instant 时间戳 * @return 格式化的字符串 @@ -92,7 +92,7 @@ public class DateTimeTools { /** * 将时间戳转换为指定格式的字符串,使用指定时区 - * + * * @param pattern 时间格式 * @param instant 时间戳 * @param zone 时区 @@ -105,7 +105,7 @@ public class DateTimeTools { /** * 指定格式,返回当前时间戳对应的字符串 - * + * * @param pattern 时间格式 * @return 格式化的字符串 */ @@ -115,7 +115,7 @@ public class DateTimeTools { /** * 指定格式,返回当前时间戳对应的字符串,使用指定时区 - * + * * @param pattern 时间格式 * @param zone 时区 * @return 格式化的字符串 @@ -128,7 +128,7 @@ public class DateTimeTools { /** * 将时间戳转换为 {@link Date} 对象 - * + * * @param timeMillis 时间戳 * @return {@link Date} 对象 */ @@ -138,7 +138,7 @@ public class DateTimeTools { /** * 将 {@link Calendar} 对象转换为 {@link Date} 对象 - * + * * @param calendar {@link Calendar} 对象 * @return {@link Date} 对象 */ @@ -148,7 +148,7 @@ public class DateTimeTools { /** * 将 {@link Instant} 对象转换为 {@link Date} 对象 - * + * * @param instant {@link Instant} 对象 * @return {@link Date} 对象 */ @@ -158,7 +158,7 @@ public class DateTimeTools { /** * 将 {@link ZonedDateTime} 对象转换为 {@link Date} 对象 - * + * * @param zonedDateTime {@link ZonedDateTime} 对象 * @return {@link Date} 对象 */ @@ -168,7 +168,7 @@ public class DateTimeTools { /** * 使用指定时区,将 {@link LocalDateTime} 对象转换为 {@link Date} 对象 - * + * * @param localDateTime {@link LocalDateTime} 对象 * @param zone 时区 * @return {@link Date} 对象 @@ -179,7 +179,7 @@ public class DateTimeTools { /** * 使用指定时区,将 {@link LocalDate} 和 {@link LocalTime} 对象转换为 {@link Date} 对象 - * + * * @param localDate {@link LocalDate} 对象 * @param localTime {@link LocalTime} 对象 * @param zone 时区 @@ -193,7 +193,7 @@ public class DateTimeTools { /** * 将时间戳转换为 {@link Instant} 对象 - * + * * @param timeMillis 时间戳 * @return {@link Instant} 对象 */ @@ -203,7 +203,7 @@ public class DateTimeTools { /** * 将 {@link Date} 对象转换为 {@link Instant} 对象 - * + * * @param date {@link Date} 对象 * @return {@link Instant} 对象 */ @@ -213,7 +213,7 @@ public class DateTimeTools { /** * 将 {@link Calendar} 对象转换为 {@link Instant} 对象 - * + * * @param calendar {@link Calendar} 对象 * @return {@link Instant} 对象 */ @@ -223,7 +223,7 @@ public class DateTimeTools { /** * 将 {@link ZonedDateTime} 对象转换为 {@link Instant} 对象 - * + * * @param zonedDateTime {@link ZonedDateTime} 对象 * @return {@link Instant} 对象 * @deprecated 请使用 {@link ZonedDateTime#toInstant()} 方法 @@ -235,7 +235,7 @@ public class DateTimeTools { /** * 使用指定时区,将 {@link LocalDateTime} 对象转换为 {@link Instant} 对象 - * + * * @param LocalDateTime {@link LocalDateTime} 对象 * @param zone 时区 * @return {@link Instant} 对象 @@ -252,7 +252,7 @@ public class DateTimeTools { * 传入不同 {@link ZoneId},获取到的 {@link ZonedDateTime} 对象实际上还是同一时间戳, * 只是不同时区的表示。 *

- * + * * @param timeMillis 时间戳 * @param zone 时区 * @return 带时区信息的地区时间 @@ -267,7 +267,7 @@ public class DateTimeTools { * 传入不同 {@link ZoneId},获取到的 {@link ZonedDateTime} 对象实际上还是同一时间戳, * 只是不同时区的表示。 *

- * + * * @param dateTime {@link Date} 对象 * @param zone 时区 * @return 带时区信息的地区时间 @@ -282,7 +282,7 @@ public class DateTimeTools { * 传入不同 {@link ZoneId},获取到的 {@link ZonedDateTime} 对象实际上表示的还是还是同一时间戳的时间, * 只是不同时区的表示。 *

- * + * * @param dateTime {@link Date} 对象 * @param timeZone 时区 * @return 带时区信息的地区时间 @@ -294,7 +294,7 @@ public class DateTimeTools { /** * 使用 {@code calendar} 对象的时区信息,将 {@link Calendar} 对象转换为 {@link ZonedDateTime} * 对象。 - * + * * @param calendar{@link Calendar} 对象 * @return {@link ZonedDateTime} 对象 */ @@ -304,7 +304,7 @@ public class DateTimeTools { /** * 使用指定的时区,将 {@link Calendar} 对象转换为 {@link ZonedDateTime} 对象。 - * + * * @param calendar {@link Calendar} 对象 * @param zone 时区 * @return {@link ZonedDateTime} 对象 @@ -315,7 +315,7 @@ public class DateTimeTools { /** * 使用指定的时区,将 {@link Calendar} 对象转换为 {@link ZonedDateTime} 对象。 - * + * * @param calendar {@link Calendar} 对象 * @param zone 时区 * @return {@link ZonedDateTime} 对象 @@ -326,11 +326,11 @@ public class DateTimeTools { /** * 创建带时区的地区时间 - * + * * @param localDateTime 地区时间 * @param zone 时区 * @return 带时区的地区时间 - * + * * @deprecated 使用 {@link ZonedDateTime#of(LocalDateTime, ZoneId)} */ @Deprecated @@ -342,7 +342,7 @@ public class DateTimeTools { /** * 获取时间戳在指定时区的地区时间。 - * + * * @param timeMillis 时间戳 * @param zone 时区 * @return 地区时间 @@ -353,7 +353,7 @@ public class DateTimeTools { /** * 获取 {@link Date} 所表示的时间戳,在指定时区的地区时间。 - * + * * @param dateTime {@link Date} 对象 * @param zone 时区 * @return 地区时间 @@ -364,7 +364,7 @@ public class DateTimeTools { /** * 获取 {@link Date} 所表示的时间戳,在指定时区的地区时间。 - * + * * @param dateTime {@link Date} 对象 * @param timeZone 时区 * @return 地区时间 @@ -375,7 +375,7 @@ public class DateTimeTools { /** * 获取 {@link Calendar} 所表示的时间戳,在指定时区的地区时间。 - * + * * @param calendar {@link Calendar} 对象 * @param zone 时区 * @return 地区时间 @@ -386,7 +386,7 @@ public class DateTimeTools { /** * 获取 {@link Calendar} 所表示的时间戳,在指定时区的地区时间。 - * + * * @param calendar {@link Calendar} 对象 * @param zone 时区 * @return 地区时间 @@ -397,7 +397,7 @@ public class DateTimeTools { /** * 获取 {@link ZonedDateTime} 所表示的时间戳,在指定时区的地区时间。 - * + * * @param zonedDateTime {@link ZonedDateTime} 对象 * @param zone 时区 * @return 地区时间 @@ -412,7 +412,7 @@ public class DateTimeTools { /** * 将 {@link java.time.Instant} 转换为 {@link org.joda.time.Instant} - * + * * @param instant {@link java.time.Instant} 对象 * @return {@link org.joda.time.Instant} 对象 */ @@ -422,7 +422,7 @@ public class DateTimeTools { /** * 将 {@link java.time.ZonedDateTime} 转换为 {@link org.joda.time.Instant} - * + * * @param zonedDateTime {@link java.time.ZonedDateTime} 对象 * @return {@link org.joda.time.Instant} 对象 */ @@ -432,7 +432,7 @@ public class DateTimeTools { /** * 计算指定时区的地区时间,对应的时间戳。结果为 {@link org.joda.time.Instant} 对象 - * + * * @param localDateTime {@link java.time.LocalDateTime} 对象 * @param zone 时区 * @return {@link org.joda.time.Instant} 对象 @@ -456,7 +456,7 @@ public class DateTimeTools { /** * 将 joda-time 中的 {@link org.joda.time.DateTime} 对象转换为 Java 的 * {@link java.time.Instant} 对象 - * + * * @param dateTime joda-time 中表示日期时间的 {@link org.joda.time.DateTime} 对象 * @return Java 表示时间戳的 {@link java.time.Instant} 对象 */ @@ -468,7 +468,7 @@ public class DateTimeTools { * 将 joda-time 中的 {@link org.joda.time.LocalDateTime} 对象和 * {@link org.joda.time.DateTimeZone} 对象 * 转换为 Java 中的 {@link java.time.Instant} 对象 - * + * * @param localDateTime * @param zone * @return @@ -484,7 +484,7 @@ public class DateTimeTools { /** * 将 Java 中表示日期时间的 {@link java.time.ZonedDateTime} 对象 * 转换为 joda-time 的 {@link org.joda.time.DateTime} 对象 - * + * * @param zonedDateTime 日期时间 * @return joda-time 中对应的 {@link org.joda.time.DateTime} 对象 */ @@ -498,7 +498,7 @@ public class DateTimeTools { * {@link java.time.ZoneId} 对象转换为 joda-time 中对应的 {@link org.joda.time.DateTime} * 对象 * 转换为 joda-time 中对应的 {@link org.joda.time.DateTime} 对象 - * + * * @param localDateTime 日期时间 * @param zone 时区 * @return joda-time 中对应的 {@link org.joda.time.DateTime} 对象 @@ -512,7 +512,7 @@ public class DateTimeTools { /** * 计算时间戳在指定时区对应的时间,结果使用 {@link org.joda.time.DateTime} 表示 - * + * * @param instant java.time 中的时间戳 * @param zone java.time 中的时区 * @return joda-time 中带时区的日期时间 @@ -528,7 +528,7 @@ public class DateTimeTools { /** * 将 joda-time 中带时区的日期时间,转换为 java.time 中带时区的日期时间 - * + * * @param dateTime joda-time 中带时区的日期时间 * @return java.time 中带时区的日期时间 */ @@ -541,7 +541,7 @@ public class DateTimeTools { * 将 joda-time 中的 {@link org.joda.time.LocalDateTime} 和 * {@link org.joda.time.DateTimeZone} * 转换为 java.time 中的 {@link java.time.ZonedDateTime} - * + * * @param localDateTime joda-time 中的地区时间 * @param dateTimeZone joda-time 中的时区 * @return java.time 中带时区的日期时间 @@ -556,7 +556,7 @@ public class DateTimeTools { /** * 获取 joda-time 中的 {@link org.joda.time.Instant} 在指定时区的时间,用 Java 8 * {@link java.time.ZonedDateTime} 表示 - * + * * @param instant joda-time 中的时间戳 * @param dateTimeZone joda-time 中的时区 * @return @@ -572,7 +572,7 @@ public class DateTimeTools { /** * 将 {@link java.time.LocalDateTime} 转换为 {@link org.joda.time.LocalDateTime} - * + * * @param localDateTime Java 8 LocalDateTime * @return joda-time LocalDateTime */ @@ -586,7 +586,7 @@ public class DateTimeTools { /** * 将 {@link org.joda.time.LocalDateTime} 转换为 {@link java.time.LocalDateTime} - * + * * @param localDateTime joda-time LocalDateTime * @return Java 8 LocalDateTime */ @@ -598,7 +598,7 @@ public class DateTimeTools { /** * 转换 Java API 和 joda-time API 表示时区的对象 - * + * * @param jodaZone joda-time API 中表示时区的对象 * @return Java API 中表示时区的对象 */ @@ -608,7 +608,7 @@ public class DateTimeTools { /** * 转换 Java API 和 joda-time API 表示时区的对象 - * + * * @param zone Java API 中表示时区的对象 * @return joda-time API 中表示时区的对象 */ @@ -620,7 +620,7 @@ public class DateTimeTools { /** * 获取指定日期所在季度 - * + * * @param date 日期 * @return 日期所在的季度 */ @@ -630,7 +630,7 @@ public class DateTimeTools { /** * 获取指定日期所在季度 - * + * * @param date 日期 * @return 日期所在的季度 */ @@ -640,7 +640,7 @@ public class DateTimeTools { /** * 获取指定月份所在季度 - * + * * @param month 月份 * @return 季度 */ @@ -650,7 +650,7 @@ public class DateTimeTools { /** * 获取指定年月所在季度 - * + * * @param year 年 * @param month 月 * @return 季度 @@ -661,7 +661,7 @@ public class DateTimeTools { /** * 获取指定年月所在季度 - * + * * @param yearMonth 年月 * @return 季度 */ @@ -671,7 +671,7 @@ public class DateTimeTools { /** * 获取指定日期所在季度 - * + * * @param date 日期 * @return 日期所在的季度 */ diff --git a/src/main/java/xyz/zhouxy/plusone/commons/util/EnumTools.java b/src/main/java/xyz/zhouxy/plusone/commons/util/EnumTools.java index fb915c2..428b29c 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/util/EnumTools.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/util/EnumTools.java @@ -134,7 +134,7 @@ public final class EnumTools { /** * 校验枚举的 ordinal。 - * + * * @param 枚举类型 * @param clazz 枚举类型 * @param ordinal The ordinal @@ -147,7 +147,7 @@ public final class EnumTools { /** * 校验枚举的 ordinal,如果 ordinal 为 {@code null},则返回 {@code 0}。 - * + * * @param 枚举类型 * @param clazz 枚举类型 * @param ordinal The ordinal @@ -160,7 +160,7 @@ public final class EnumTools { /** * 校验枚举的 ordinal,如果 ordinal 为 {@code null},则返回 {@code defaultValue}。 - * + * * @param 枚举类型 * @param clazz 枚举类型 * @param ordinal The ordinal diff --git a/src/main/java/xyz/zhouxy/plusone/commons/util/OptionalTools.java b/src/main/java/xyz/zhouxy/plusone/commons/util/OptionalTools.java index 288ac77..f14e724 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/util/OptionalTools.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/util/OptionalTools.java @@ -46,7 +46,7 @@ public class OptionalTools { * 包装类为 {@code null} 表示值的缺失,转为 {@link OptionalInt} 后,由 * {@link OptionalInt#empty()} 表示值的缺失。 *

- * + * * @param value 包装对象 * @return {@link OptionalInt} 实例 */ @@ -59,7 +59,7 @@ public class OptionalTools { *

* {@code Optional} 将整数包装了两次,改为使用 {@link OptionalInt} 包装其中的整数数据。 *

- * + * * @param optionalObj {@code Optional} 对象 * @return {@link OptionalInt} 实例 */ @@ -73,7 +73,7 @@ public class OptionalTools { * 包装类为 {@code null} 表示值的缺失,转为 {@link OptionalLong} 后,由 * {@link OptionalLong#empty()} 表示值的缺失。 *

- * + * * @param value 包装对象 * @return {@link OptionalLong} 实例 */ @@ -86,7 +86,7 @@ public class OptionalTools { *

* {@code Optional} 将整数包装了两次,改为使用 {@link OptionalLong} 包装其中的整数数据。 *

- * + * * @param optionalObj 包装对象 * @return {@link OptionalLong} 实例 */ @@ -100,7 +100,7 @@ public class OptionalTools { * 包装类为 {@code null} 表示值的缺失,转为 {@link OptionalDouble} 后,由 * {@link OptionalDouble#empty()} 表示值的缺失。 *

- * + * * @param value 包装对象 * @return {@link OptionalDouble} 实例 */ @@ -113,7 +113,7 @@ public class OptionalTools { *

* {@code Optional} 将整数包装了两次,改为使用 {@link OptionalDouble} 包装其中的整数数据。 *

- * + * * @param optionalObj 包装对象 * @return {@link OptionalDouble} 实例 */ @@ -124,7 +124,7 @@ public class OptionalTools { /** * return the value of the optional object if present, * otherwise {@code null}. - * + * * @param the class of the value * @param optionalObj {@link Optional} object, which must be non-null. * @return the value of the optional object if present, otherwise {@code null}. diff --git a/src/main/java/xyz/zhouxy/plusone/commons/util/RegexTools.java b/src/main/java/xyz/zhouxy/plusone/commons/util/RegexTools.java index cffcc64..141a044 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/util/RegexTools.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/util/RegexTools.java @@ -19,6 +19,7 @@ package xyz.zhouxy.plusone.commons.util; import java.util.Arrays; import java.util.Map; import java.util.Objects; +import java.util.concurrent.ConcurrentHashMap; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -27,12 +28,10 @@ import javax.annotation.Nullable; import com.google.common.base.Preconditions; -import xyz.zhouxy.plusone.commons.collection.SafeConcurrentHashMap; - /** * 封装一些常用的正则操作,并可以缓存 {@link Pattern} 实例以复用(最多缓存大概 256 个)。 - * - * @author ZhouXY + * + * @author ZhouXY * */ public final class RegexTools { @@ -40,11 +39,11 @@ public final class RegexTools { private static final int DEFAULT_CACHE_INITIAL_CAPACITY = 64; private static final int MAX_CACHE_SIZE = 256; private static final Map PATTERN_CACHE - = new SafeConcurrentHashMap<>(DEFAULT_CACHE_INITIAL_CAPACITY); + = new ConcurrentHashMap<>(DEFAULT_CACHE_INITIAL_CAPACITY); /** * 获取 {@link Pattern} 实例。 - * + * * @param pattern 正则表达式 * @param cachePattern 是否缓存 {@link Pattern} 实例 * @return {@link Pattern} 实例 @@ -56,7 +55,7 @@ public final class RegexTools { /** * 获取 {@link Pattern} 实例,不缓存。 - * + * * @param pattern 正则表达式 * @return {@link Pattern} 实例 */ @@ -67,7 +66,7 @@ public final class RegexTools { /** * 将各个正则表达式转为 {@link Pattern} 实例。 - * + * * @param patterns 正则表达式 * @param cachePattern 是否缓存 {@link Pattern} 实例 * @return {@link Pattern} 实例数组 @@ -82,7 +81,7 @@ public final class RegexTools { /** * 将各个正则表达式转为 {@link Pattern} 实例,不缓存。 - * + * * @param patterns 正则表达式 * @return {@link Pattern} 实例数组 */ @@ -94,7 +93,7 @@ public final class RegexTools { /** * 手动缓存 Pattern 实例。 - * + * * @param pattern 要缓存的 {@link Pattern} 实例 * @return 缓存的 Pattern 实例。如果缓存已满,则返回 {@code null}。 */ @@ -110,7 +109,7 @@ public final class RegexTools { /** * 判断 {@code input} 是否匹配 {@code pattern}。 - * + * * @param input 输入 * @param pattern 正则 * @return 判断结果 @@ -122,7 +121,7 @@ public final class RegexTools { /** * 判断 {@code input} 是否匹配 {@code patterns} 中的一个。 - * + * * @param input 输入 * @param patterns 正则 * @return 判断结果 @@ -135,7 +134,7 @@ public final class RegexTools { /** * 判断 {@code input} 是否匹配全部正则。 - * + * * @param input 输入 * @param patterns 正则 * @return 判断结果 @@ -148,7 +147,7 @@ public final class RegexTools { /** * 判断 {@code input} 是否匹配 {@code pattern}。 - * + * * @param input 输入 * @param pattern 正则表达式 * @param cachePattern 是否缓存 {@link Pattern} 实例 @@ -165,7 +164,7 @@ public final class RegexTools { /** * 判断 {@code input} 是否匹配 {@code pattern}。不缓存 {@link Pattern} 实例。 - * + * * @param input 输入 * @param pattern 正则表达式 * @return 判断结果 @@ -177,7 +176,7 @@ public final class RegexTools { /** * 判断 {@code input} 是否匹配 {@code patterns} 中的一个。 - * + * * @param input 输入 * @param patterns 正则表达式 * @param cachePattern 是否缓存 {@link Pattern} 实例 @@ -195,7 +194,7 @@ public final class RegexTools { /** * 判断 {@code input} 是否匹配 {@code patterns} 中的一个。不缓存 {@link Pattern} 实例。 - * + * * @param input 输入 * @param patterns 正则表达式 * @return 判断结果 @@ -209,7 +208,7 @@ public final class RegexTools { /** * 判断 {@code input} 是否匹配全部正则。 - * + * * @param input 输入 * @param patterns 正则表达式 * @param cachePattern 是否缓存 {@link Pattern} 实例 @@ -227,7 +226,7 @@ public final class RegexTools { /** * 判断 {@code input} 是否匹配全部正则。不缓存 {@link Pattern} 实例。 - * + * * @param input 输入 * @param patterns 正则表达式 * @return 判断结果 @@ -241,7 +240,7 @@ public final class RegexTools { /** * 生成 Matcher。 - * + * * @param input 输入 * @param pattern 正则 * @return 结果 @@ -254,7 +253,7 @@ public final class RegexTools { /** * 生成 Matcher。 - * + * * @param input 输入 * @param pattern 正则表达式 * @param cachePattern 是否缓存 {@link Pattern} 实例 @@ -271,7 +270,7 @@ public final class RegexTools { /** * 生成 Matcher。不缓存 {@link Pattern} 实例。 - * + * * @param input 输入 * @param pattern 正则表达式 * @return 结果 @@ -286,7 +285,7 @@ public final class RegexTools { /** * 获取 {@link Pattern} 实例。 - * + * * @param pattern 正则表达式 * @param cachePattern 是否缓存 {@link Pattern} 实例 * @return {@link Pattern} 实例 @@ -305,7 +304,7 @@ public final class RegexTools { /** * 获取 {@link Pattern} 实例,不缓存。 - * + * * @param pattern 正则表达式 * @return {@link Pattern} 实例 */ @@ -320,7 +319,7 @@ public final class RegexTools { /** * 将各个正则表达式转为 {@link Pattern} 实例。 - * + * * @param patterns 正则表达式 * @return {@link Pattern} 实例数组 */ @@ -333,7 +332,7 @@ public final class RegexTools { /** * 将各个正则表达式转为 {@link Pattern} 实例。 - * + * * @param patterns 正则表达式 * @return {@link Pattern} 实例数组 */ @@ -346,7 +345,7 @@ public final class RegexTools { /** * 判断 {@code input} 是否匹配 {@code pattern}。 - * + * * @param input 输入 * @param pattern 正则 * @return 判断结果 diff --git a/src/main/java/xyz/zhouxy/plusone/commons/util/TreeBuilder.java b/src/main/java/xyz/zhouxy/plusone/commons/util/TreeBuilder.java index e97da8f..83b8af9 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/util/TreeBuilder.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/util/TreeBuilder.java @@ -59,7 +59,7 @@ public class TreeBuilder { *

* 注意,该方法会直接操作 nodes 列表中的节点,并没有做深拷贝, * 注意避免 nodes 中的元素产生变化所带来的意料之外的影响。 - * + * * @param nodes 平铺的节点列表 */ public List buildTree(Collection nodes) { @@ -72,7 +72,7 @@ public class TreeBuilder { *

* !!注意:该方法会直接操作 nodes 列表中的节点,并没有做深拷贝, * 注意避免 nodes 中的元素产生变化所带来的意料之外的影响。 - * + * * @param nodes 平铺的节点列表 * @param comparator 用于节点的排序。 * 若为 {@code null},则使用 {@link #defaultComparator}; @@ -90,7 +90,7 @@ public class TreeBuilder { *

* 注意,该方法会直接操作 nodes 列表中的节点,并没有做深拷贝, * 注意避免 nodes 中的元素产生变化所带来的意料之外的影响。 - * + * * @param nodes 平铺的节点列表 * @param comparator 用于节点的排序。若为 {@code null},则不排序 */