forked from plusone/plusone-commons
格式化代码。
This commit is contained in:
parent
443116a5a2
commit
f4b7005b92
@ -27,7 +27,7 @@ import java.lang.annotation.Documented;
|
||||
*
|
||||
* <p>标识方法为不支持的操作。该方法将抛出 {@link UnsupportedOperationException}。
|
||||
*
|
||||
* @author zhouxy
|
||||
* @author <a href="http://zhouxy.xyz:3000/ZhouXY108">ZhouXY</a>
|
||||
* @version 1.0
|
||||
* @since 1.0
|
||||
* @see UnsupportedOperationException
|
||||
|
@ -55,7 +55,7 @@ public final class Ref<T> {
|
||||
return this.value != null;
|
||||
}
|
||||
|
||||
public void execute(Consumer<T> consumer) {
|
||||
public void execute(Consumer<? super T> consumer) {
|
||||
consumer.accept(value);
|
||||
}
|
||||
|
||||
|
@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
package xyz.zhouxy.plusone.commons.model;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
@ -20,6 +20,8 @@ import xyz.zhouxy.plusone.commons.util.AssertTools;
|
||||
|
||||
/**
|
||||
* 性别
|
||||
*
|
||||
* @author <a href="http://zhouxy.xyz:3000/ZhouXY108">ZhouXY</a>
|
||||
*/
|
||||
public enum Gender {
|
||||
UNKNOWN(0, "Unknown", "未知"),
|
||||
|
@ -194,7 +194,7 @@ public abstract class UnifiedResponse {
|
||||
/**
|
||||
* 自定义结果
|
||||
*
|
||||
* @author zhouxy
|
||||
* @author <a href="http://zhouxy.xyz:3000/ZhouXY108">ZhouXY</a>
|
||||
*/
|
||||
protected static class CustomResult extends UnifiedResponse {
|
||||
|
||||
|
@ -21,7 +21,7 @@ import org.apache.ibatis.jdbc.AbstractSQL;
|
||||
import com.google.common.annotations.Beta;
|
||||
|
||||
/**
|
||||
* @author ZhouXY
|
||||
* @author <a href="http://zhouxy.xyz:3000/ZhouXY108">ZhouXY</a>
|
||||
*/
|
||||
@Beta
|
||||
public abstract class SQL<T> extends AbstractSQL<T> {
|
||||
|
@ -27,7 +27,7 @@ import xyz.zhouxy.plusone.commons.util.Numbers;
|
||||
/**
|
||||
* 季度
|
||||
*
|
||||
* @author zhouxy
|
||||
* @author <a href="http://zhouxy.xyz:3000/ZhouXY108">ZhouXY</a>
|
||||
*/
|
||||
public enum Quarter {
|
||||
/** 第一季度 */
|
||||
|
@ -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 <a href="http://zhouxy.xyz:3000/ZhouXY108">ZhouXY</a>
|
||||
*/
|
||||
@Immutable
|
||||
public final class YearQuarter implements Comparable<YearQuarter>, Serializable {
|
||||
@ -57,6 +59,8 @@ public final class YearQuarter implements Comparable<YearQuarter>, Serializable
|
||||
this.lastDate = quarter.lastMonthDay().atYear(year);
|
||||
}
|
||||
|
||||
// #region - StaticFactoryMethod
|
||||
|
||||
/**
|
||||
* 根据指定年份与季度,创建 {@link YearQuarter} 实例
|
||||
*
|
||||
@ -64,6 +68,7 @@ public final class YearQuarter implements Comparable<YearQuarter>, 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<YearQuarter>, 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<YearQuarter>, 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<YearQuarter>, 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<YearQuarter>, 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<YearQuarter>, 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<YearQuarter>, 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<YearQuarter>, 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<YearQuarter>, 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<YearQuarter>, Serializable
|
||||
return this.compareTo(other) > 0;
|
||||
}
|
||||
|
||||
// toString
|
||||
// #endregion
|
||||
|
||||
// #region - toString
|
||||
|
||||
/**
|
||||
* 返回 {@link YearQuarter} 的字符串表示形式,如 "2024 Q3"
|
||||
@ -247,4 +263,6 @@ public final class YearQuarter implements Comparable<YearQuarter>, Serializable
|
||||
public String toString() {
|
||||
return this.year + " " + this.quarter.name();
|
||||
}
|
||||
|
||||
// #endregion
|
||||
}
|
||||
|
@ -24,17 +24,17 @@ import javax.annotation.Nonnull;
|
||||
* 断言工具
|
||||
*
|
||||
* <p>
|
||||
* 本工具类基本仅对表达式进行判断,并在表达式为 {@code false} 时抛出对应异常。
|
||||
* 不封装过多判断逻辑,鼓励充分使用项目中的工具类进行逻辑判断。
|
||||
* 本工具类不封装过多判断逻辑,鼓励充分使用项目中的工具类进行逻辑判断。
|
||||
* </p>
|
||||
*
|
||||
* <pre>
|
||||
* 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");
|
||||
* </pre>
|
||||
*
|
||||
* @author ZhouXY
|
||||
* @author <a href="http://zhouxy.xyz:3000/ZhouXY108">ZhouXY</a>
|
||||
*/
|
||||
public class AssertTools {
|
||||
|
||||
|
@ -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() {
|
||||
|
@ -41,7 +41,7 @@ import xyz.zhouxy.plusone.commons.time.YearQuarter;
|
||||
/**
|
||||
* 日期时间工具类
|
||||
*
|
||||
* @author zhouxy
|
||||
* @author <a href="http://zhouxy.xyz:3000/ZhouXY108">ZhouXY</a>
|
||||
*/
|
||||
public class DateTimeTools {
|
||||
|
||||
|
@ -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 <a href="http://zhouxy.xyz:3000/ZhouXY108">ZhouXY</a>
|
||||
*
|
||||
*/
|
||||
public final class RegexTools {
|
||||
@ -40,7 +39,7 @@ 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<String, Pattern> PATTERN_CACHE
|
||||
= new SafeConcurrentHashMap<>(DEFAULT_CACHE_INITIAL_CAPACITY);
|
||||
= new ConcurrentHashMap<>(DEFAULT_CACHE_INITIAL_CAPACITY);
|
||||
|
||||
/**
|
||||
* 获取 {@link Pattern} 实例。
|
||||
|
Loading…
x
Reference in New Issue
Block a user