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 super T> 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},则不排序
*/