fix comment

This commit is contained in:
Looly 2025-06-27 11:45:08 +08:00
parent 9cc095463e
commit c17c5bb013
51 changed files with 436 additions and 50 deletions

View File

@ -22,6 +22,7 @@ import cn.hutool.v7.core.lang.Assert;
import cn.hutool.v7.core.util.ByteUtil;
import cn.hutool.v7.core.util.RandomUtil;
import java.io.Serial;
import java.io.Serializable;
import java.nio.ByteOrder;
import java.util.Objects;
@ -52,6 +53,7 @@ import java.util.Random;
* @since 6.0.0
*/
public class ULID implements Comparable<ULID>, Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
@ -174,6 +176,9 @@ public class ULID implements Comparable<ULID>, Serializable {
// endregion
/**
* 16位ID值
*/
private final Number128 idValue;
/**

View File

@ -90,6 +90,9 @@ public final class UUID implements java.io.Serializable, Comparable<UUID> {
private static final AtomicLong lastV7time = new AtomicLong(0);
private static final long NANOS_PER_MILLI = 1_000_000;
/**
* 16位ID值
*/
private final Number128 idValue;
/**

View File

@ -21,6 +21,7 @@ import cn.hutool.v7.core.date.DateFormatPool;
import cn.hutool.v7.core.date.format.parser.FastDateParser;
import cn.hutool.v7.core.date.format.parser.PositionDateParser;
import java.io.Serial;
import java.text.DateFormat;
import java.text.FieldPosition;
import java.text.Format;
@ -49,6 +50,7 @@ import java.util.TimeZone;
*
*/
public class FastDateFormat extends Format implements PositionDateParser, DatePrinter {
@Serial
private static final long serialVersionUID = 8097890768636183236L;
/**
@ -75,7 +77,13 @@ public class FastDateFormat extends Format implements PositionDateParser, DatePr
}
};
/**
* {@link FastDatePrinter}日期格式生成器
*/
private final FastDatePrinter printer;
/**
* {@link FastDateParser}日期格式解析器
*/
private final FastDateParser parser;
// -----------------------------------------------------------------------

View File

@ -19,6 +19,7 @@ package cn.hutool.v7.core.date.format;
import cn.hutool.v7.core.date.format.parser.FastDateParser;
import cn.hutool.v7.core.text.StrUtil;
import java.io.Serial;
import java.util.*;
import java.util.concurrent.ConcurrentLinkedQueue;
@ -29,8 +30,12 @@ import java.util.concurrent.ConcurrentLinkedQueue;
* @see FastDateParser
*/
public class FastDatePrinter extends SimpleDateBasic implements DatePrinter {
@Serial
private static final long serialVersionUID = -6305750172255764887L;
/**
* 日期模式
*/
private final DatePattern datePattern;
/**
* 缓存的Calendar对象用于减少对象创建参考tomcat的ConcurrentDateFormat

View File

@ -50,9 +50,15 @@ public class FastDateParser extends SimpleDateBasic implements PositionDateParse
* 世纪2000年前为19 之后为20
*/
private final int century;
/**
* 起始年份
*/
private final int startYear;
// derived fields
/**
* 缓存的解析策略
*/
private transient List<StrategyAndWidth> patterns;
// comparator used to sort regex alternatives

View File

@ -20,6 +20,7 @@ import cn.hutool.v7.core.date.CalendarUtil;
import cn.hutool.v7.core.date.DateException;
import cn.hutool.v7.core.date.DateTime;
import java.io.Serial;
import java.io.Serializable;
import java.util.Calendar;
import java.util.Locale;
@ -32,6 +33,7 @@ import java.util.Locale;
* @since 6.0.0
*/
public class PatternsDateParser implements DateParser, Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
@ -44,7 +46,13 @@ public class PatternsDateParser implements DateParser, Serializable {
return new PatternsDateParser(parsePatterns);
}
/**
* 解析格式
*/
private String[] parsePatterns;
/**
* 地区
*/
private Locale locale;
/**

View File

@ -28,6 +28,7 @@ import cn.hutool.v7.core.text.CharUtil;
import cn.hutool.v7.core.text.StrUtil;
import cn.hutool.v7.core.text.dfa.WordTree;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.time.OffsetDateTime;
@ -45,6 +46,7 @@ import java.util.regex.Pattern;
* @author Looly
*/
public class RegexDateParser implements DateParser, Serializable {
@Serial
private static final long serialVersionUID = 1L;
private static final int[] NSS = {100000000, 10000000, 1000000, 100000, 10000, 1000, 100, 10, 1};
@ -75,7 +77,13 @@ public class RegexDateParser implements DateParser, Serializable {
return new RegexDateParser(ListUtil.of(patterns));
}
/**
* 格式列表
*/
private final List<Pattern> patterns;
/**
* {@code true}默认为mm/dd否则dd/mm
*/
private boolean preferMonthFirst;
/**
@ -296,15 +304,14 @@ public class RegexDateParser implements DateParser, Serializable {
private static int parseYear(final String year) {
final int length = year.length();
switch (length) {
case 4:
return Integer.parseInt(year);
case 2:
return switch (length) {
case 4 -> Integer.parseInt(year);
case 2 -> {
final int num = Integer.parseInt(year);
return (num > 50 ? 1900 : 2000) + num;
default:
throw new DateException("Invalid year: [{}]", year);
}
yield (num > 50 ? 1900 : 2000) + num;
}
default -> throw new DateException("Invalid year: [{}]", year);
};
}
/**

View File

@ -19,6 +19,7 @@ package cn.hutool.v7.core.date.format.parser;
import cn.hutool.v7.core.collection.ListUtil;
import cn.hutool.v7.core.date.DateException;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@ -31,6 +32,7 @@ import java.util.List;
* @since 6.0.0
*/
public class RegisterDateParser implements DateParser, Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
@ -38,6 +40,9 @@ public class RegisterDateParser implements DateParser, Serializable {
*/
public static final RegisterDateParser INSTANCE = new RegisterDateParser();
/**
* 日期解析器列表
*/
private final List<PredicateDateParser> parserList;
/**

View File

@ -16,15 +16,20 @@
package cn.hutool.v7.core.exception;
import java.io.Serial;
/**
* 带有状态码的异常
*
* @author Looly
*/
public class StatefulException extends HutoolException {
@Serial
private static final long serialVersionUID = 1L;
// 异常状态码
/**
* 异常状态码
*/
private int status;
/**

View File

@ -18,6 +18,7 @@ package cn.hutool.v7.core.func;
import cn.hutool.v7.core.lang.Assert;
import java.io.Serial;
import java.io.Serializable;
import java.util.function.Function;
@ -31,6 +32,7 @@ import java.util.function.Function;
* @since 6.0.0
*/
public class ComposeFunction<A, B, C> implements Function<A, C>, Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
@ -47,7 +49,13 @@ public class ComposeFunction<A, B, C> implements Function<A, C>, Serializable {
return new ComposeFunction<>(g, f);
}
/**
* 函数1
*/
private final Function<B, C> g;
/**
* 函数2
*/
private final Function<A, ? extends B> f;
/**

View File

@ -20,6 +20,7 @@ import cn.hutool.v7.core.lang.Assert;
import cn.hutool.v7.core.array.ArrayUtil;
import cn.hutool.v7.core.util.CharsetUtil;
import java.io.Serial;
import java.io.Serializable;
import java.util.Arrays;
import java.util.function.Predicate;
@ -40,6 +41,7 @@ import java.util.function.Predicate;
* @author Apache-commons-io
*/
public class ByteOrderMark implements Predicate<byte[]>, Comparable<ByteOrderMark>, Serializable {
@Serial
private static final long serialVersionUID = 1L;
// region ----- BOMs
@ -85,7 +87,13 @@ public class ByteOrderMark implements Predicate<byte[]>, Comparable<ByteOrderMar
};
// endregion
/**
* BOM头
*/
private final String charsetName;
/**
* BOM bytes
*/
private final byte[] bytes;
/**
@ -163,10 +171,9 @@ public class ByteOrderMark implements Predicate<byte[]>, Comparable<ByteOrderMar
@Override
public boolean equals(final Object obj) {
if (!(obj instanceof ByteOrderMark)) {
if (!(obj instanceof final ByteOrderMark bom)) {
return false;
}
final ByteOrderMark bom = (ByteOrderMark) obj;
return Arrays.equals(this.bytes, bom.bytes);
}

View File

@ -19,6 +19,7 @@ package cn.hutool.v7.core.io.checksum;
import cn.hutool.v7.core.io.checksum.crc16.CRC16Checksum;
import cn.hutool.v7.core.io.checksum.crc16.CRC16IBM;
import java.io.Serial;
import java.io.Serializable;
import java.util.zip.Checksum;
@ -29,8 +30,12 @@ import java.util.zip.Checksum;
* @since 4.4.1
*/
public class CRC16 implements Checksum, Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* CRC16实现
*/
private final CRC16Checksum crc16;
/**

View File

@ -16,6 +16,7 @@
package cn.hutool.v7.core.io.checksum;
import java.io.Serial;
import java.io.Serializable;
import java.util.zip.Checksum;
@ -27,10 +28,20 @@ import java.util.zip.Checksum;
* @since 4.4.1
*/
public class CRC8 implements Checksum, Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* CRC8-CCITT polynomial.
*/
private final short init;
/**
* CRC8-CCITT table.
*/
private final short[] crcTable = new short[256];
/**
* CRC8 value.
*/
private short value;
/**

View File

@ -22,6 +22,7 @@ import cn.hutool.v7.core.util.ObjUtil;
import java.io.File;
import java.io.PrintWriter;
import java.io.Serial;
import java.io.Serializable;
import java.nio.charset.Charset;
import java.util.ArrayList;
@ -38,8 +39,12 @@ import java.util.concurrent.locks.Lock;
* @since 3.1.2
*/
public class FileAppender implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 文件写入器
*/
private final FileWriter writer;
/**
* 内存中持有的字符串数

View File

@ -34,8 +34,17 @@ import java.nio.file.WatchKey;
*/
public class LineReadWatcher extends SimpleWatcher implements Runnable {
/**
* 随机访问文件
*/
private final RandomAccessFile randomAccessFile;
/**
* 编码
*/
private final Charset charset;
/**
* 行处理器{@link SerConsumer}实现
*/
private final SerConsumer<String> lineHandler;
/**

View File

@ -23,6 +23,7 @@ import cn.hutool.v7.core.lang.copier.SrcToTargetCopier;
import cn.hutool.v7.core.util.ObjUtil;
import java.io.IOException;
import java.io.Serial;
import java.nio.file.*;
/**
@ -32,6 +33,7 @@ import java.nio.file.*;
* @since 6.0.0
*/
public class PathCopier extends SrcToTargetCopier<Path, PathCopier> {
@Serial
private static final long serialVersionUID = 1L;
/**
@ -58,6 +60,9 @@ public class PathCopier extends SrcToTargetCopier<Path, PathCopier> {
return new PathCopier(src, target, options);
}
/**
* 复制参数
*/
private final CopyOption[] options;
/**
@ -65,7 +70,7 @@ public class PathCopier extends SrcToTargetCopier<Path, PathCopier> {
*
* @param src 源文件或目录不能为{@code null}且必须存在
* @param target 目标文件或目录
* @param options 移动参数
* @param options 复制参数
*/
public PathCopier(final Path src, final Path target, final CopyOption[] options) {
Assert.notNull(target, "Src path must be not null !");

View File

@ -29,10 +29,7 @@ import cn.hutool.v7.core.lang.Console;
import cn.hutool.v7.core.text.CharUtil;
import cn.hutool.v7.core.util.CharsetUtil;
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.io.Serializable;
import java.io.*;
import java.nio.charset.Charset;
import java.nio.file.WatchEvent;
import java.nio.file.WatchKey;
@ -46,6 +43,7 @@ import java.util.concurrent.*;
* @since 4.5.2
*/
public class Tailer implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
@ -53,26 +51,48 @@ public class Tailer implements Serializable {
*/
public static final SerConsumer<String> CONSOLE_HANDLER = new ConsoleLineHandler();
/** 编码 */
/**
* 编码
*/
private final Charset charset;
/** 行处理器 */
/**
* 行处理器
*/
private final SerConsumer<String> lineHandler;
/** 初始读取的行数 */
/**
* 初始读取的行数
*/
private final int initReadLine;
/** 定时任务检查间隔时长 */
/**
* 定时任务检查间隔时长
*/
private final long period;
/**
* 文件路径
*/
private final String filePath;
/**
* 随机访问文件
*/
private final RandomAccessFile randomAccessFile;
/**
* 定时任务执行器
*/
private final ScheduledExecutorService executorService;
/**
* 文件删除监听器
*/
private WatchMonitor fileDeleteWatchMonitor;
/**
* 删除文件后是否退出并抛出异常
*/
private boolean stopOnDelete;
/**
* 构造默认UTF-8编码
*
* @param file 文件
* @param file 文件
* @param lineHandler 行处理器
*/
public Tailer(final File file, final SerConsumer<String> lineHandler) {
@ -82,8 +102,8 @@ public class Tailer implements Serializable {
/**
* 构造默认UTF-8编码
*
* @param file 文件
* @param lineHandler 行处理器
* @param file 文件
* @param lineHandler 行处理器
* @param initReadLine 启动时预读取的行数1表示一行
*/
public Tailer(final File file, final SerConsumer<String> lineHandler, final int initReadLine) {
@ -93,8 +113,8 @@ public class Tailer implements Serializable {
/**
* 构造
*
* @param file 文件
* @param charset 编码
* @param file 文件
* @param charset 编码
* @param lineHandler 行处理器
*/
public Tailer(final File file, final Charset charset, final SerConsumer<String> lineHandler) {
@ -104,11 +124,11 @@ public class Tailer implements Serializable {
/**
* 构造
*
* @param file 文件
* @param charset 编码
* @param lineHandler 行处理器
* @param file 文件
* @param charset 编码
* @param lineHandler 行处理器
* @param initReadLine 启动时预读取的行数1表示一行
* @param period 检查间隔
* @param period 检查间隔
*/
public Tailer(final File file, final Charset charset, final SerConsumer<String> lineHandler, final int initReadLine, final long period) {
checkFile(file);
@ -152,15 +172,16 @@ public class Tailer implements Serializable {
final LineReadWatcher lineReadWatcher = new LineReadWatcher(this.randomAccessFile, this.charset, this.lineHandler);
final ScheduledFuture<?> scheduledFuture = this.executorService.scheduleAtFixedRate(//
lineReadWatcher, //
0, //
this.period, TimeUnit.MILLISECONDS//
lineReadWatcher, //
0, //
this.period, TimeUnit.MILLISECONDS//
);
// 监听删除
if(stopOnDelete){
if (stopOnDelete) {
fileDeleteWatchMonitor = WatchUtil.of(this.filePath, WatchKind.DELETE.getValue());
fileDeleteWatchMonitor.setWatcher(new SimpleWatcher(){
fileDeleteWatchMonitor.setWatcher(new SimpleWatcher() {
@Serial
private static final long serialVersionUID = 4497160994840060329L;
@Override
@ -187,8 +208,8 @@ public class Tailer implements Serializable {
/**
* 结束此方法需在异步模式或
*/
public void stop(){
try{
public void stop() {
try {
this.executorService.shutdown();
} finally {
IoUtil.closeQuietly(this.randomAccessFile);
@ -197,6 +218,7 @@ public class Tailer implements Serializable {
}
// ---------------------------------------------------------------------------------------- Private method start
/**
* 预读取行
*
@ -225,7 +247,7 @@ public class Tailer implements Serializable {
if (c == CharUtil.LF || c == CharUtil.CR) {
// FileUtil.readLine(this.randomAccessFile, this.charset, this.lineHandler);
final String line = FileUtil.readLine(this.randomAccessFile, this.charset);
if(null != line) {
if (null != line) {
stack.push(line);
}
currentLine++;
@ -237,7 +259,7 @@ public class Tailer implements Serializable {
// 当文件指针退至文件开始处输出第一行
// FileUtil.readLine(this.randomAccessFile, this.charset, this.lineHandler);
final String line = FileUtil.readLine(this.randomAccessFile, this.charset);
if(null != line) {
if (null != line) {
stack.push(line);
}
break;
@ -280,7 +302,9 @@ public class Tailer implements Serializable {
* @since 4.5.2
*/
public static class ConsoleLineHandler implements SerConsumer<String> {
@Serial
private static final long serialVersionUID = 1L;
@Override
public void accepting(final String line) {
Console.log(line);

View File

@ -21,6 +21,7 @@ import cn.hutool.v7.core.text.StrUtil;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.Serial;
import java.io.Serializable;
import java.net.URL;
import java.nio.charset.Charset;
@ -33,9 +34,16 @@ import java.nio.charset.Charset;
* @since 4.0.9
*/
public class BytesResource implements Resource, Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 字节数据
*/
private final byte[] bytes;
/**
* 资源名称
*/
private final String name;
/**

View File

@ -39,8 +39,17 @@ public class ClassPathResource extends UrlResource {
@Serial
private static final long serialVersionUID = 1L;
/**
* 路径
*/
private final String path;
/**
* 类加载器
*/
private final ClassLoader classLoader;
/**
* 基于的类
*/
private final Class<?> clazz;
// -------------------------------------------------------------------------------------- Constructor start

View File

@ -37,8 +37,17 @@ public class FileResource implements Resource, Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 文件
*/
private final File file;
/**
* 文件最后修改时间
*/
private final long lastModified;
/**
* 文件名
*/
private final String name;
// ----------------------------------------------------------------------- Constructor start

View File

@ -19,6 +19,7 @@ package cn.hutool.v7.core.io.resource;
import cn.hutool.v7.core.lang.Assert;
import java.io.InputStream;
import java.io.Serial;
import java.io.Serializable;
import java.net.URL;
@ -29,9 +30,16 @@ import java.net.URL;
* @since 5.7.17
*/
public class HttpResource implements Resource, Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 资源
*/
private final Resource resource;
/**
* Content-Type类型
*/
private final String contentType;
/**

View File

@ -19,10 +19,7 @@ package cn.hutool.v7.core.io.resource;
import cn.hutool.v7.core.io.IORuntimeException;
import cn.hutool.v7.core.io.stream.ReaderInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import java.io.Serializable;
import java.io.*;
import java.net.URL;
import java.nio.charset.Charset;
@ -34,9 +31,16 @@ import java.nio.charset.Charset;
* @since 4.0.9
*/
public class InputStreamResource implements Resource, Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* {@link InputStream}
*/
private final InputStream in;
/**
* 资源名称
*/
private final String name;
/**

View File

@ -21,6 +21,7 @@ import cn.hutool.v7.core.io.IORuntimeException;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.Serial;
import java.io.Serializable;
import java.net.URL;
import java.nio.charset.Charset;
@ -37,9 +38,16 @@ import java.util.List;
* @since 4.1.0
*/
public class MultiResource implements Resource, Iterable<Resource>, Iterator<Resource>, Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 资源列表
*/
private final List<Resource> resources;
/**
* 游标
*/
private int cursor;
/**

View File

@ -24,6 +24,7 @@ import cn.hutool.v7.core.util.ObjUtil;
import java.io.File;
import java.io.InputStream;
import java.io.Serial;
import java.io.Serializable;
import java.net.URI;
import java.net.URL;
@ -34,6 +35,7 @@ import java.net.URL;
* @author Looly
*/
public class UrlResource implements Resource, Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
@ -44,6 +46,9 @@ public class UrlResource implements Resource, Serializable {
* 资源名称
*/
protected String name;
/**
* 最后修改时间
*/
private long lastModified = 0;
//-------------------------------------------------------------------------------------- Constructor start

View File

@ -22,6 +22,7 @@ import cn.hutool.v7.core.text.CharUtil;
import cn.hutool.v7.core.text.StrUtil;
import java.io.Closeable;
import java.io.Serial;
import java.io.Serializable;
import java.nio.file.Path;
import java.nio.file.WatchEvent;
@ -37,8 +38,12 @@ import java.nio.file.WatchEvent;
* @author Looly
*/
public class WatchMonitor extends Thread implements Closeable, Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 监听服务
*/
private final WatchServiceWrapper watchService;
/**

View File

@ -20,6 +20,7 @@ import cn.hutool.v7.core.collection.ListUtil;
import cn.hutool.v7.core.comparator.CompareUtil;
import cn.hutool.v7.core.text.CharUtil;
import java.io.Serial;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@ -31,6 +32,7 @@ import java.util.List;
* @author Looly
*/
public class Version implements Comparable<Version>, Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
@ -44,10 +46,22 @@ public class Version implements Comparable<Version>, Serializable {
return new Version(v);
}
/**
* 版本
*/
private final String version;
/**
* 主版本号
*/
private final List<Object> sequence;
/**
* 次版本号
*/
private final List<Object> pre;
/**
* 构建版本
*/
private final List<Object> build;
/**

View File

@ -16,6 +16,7 @@
package cn.hutool.v7.core.lang.mutable;
import java.io.Serial;
import java.io.Serializable;
/**
@ -25,8 +26,12 @@ import java.io.Serializable;
* @since 3.0.1
*/
public class MutableBool implements Comparable<MutableBool>, Mutable<Boolean>, Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
private boolean value;
/**

View File

@ -18,6 +18,8 @@ package cn.hutool.v7.core.lang.mutable;
import cn.hutool.v7.core.comparator.CompareUtil;
import java.io.Serial;
/**
* 可变 {@code byte} 类型
*
@ -25,8 +27,12 @@ import cn.hutool.v7.core.comparator.CompareUtil;
* @since 3.0.1
*/
public class MutableByte extends Number implements Comparable<MutableByte>, Mutable<Number> {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
private byte value;
/**

View File

@ -18,6 +18,8 @@ package cn.hutool.v7.core.lang.mutable;
import cn.hutool.v7.core.comparator.CompareUtil;
import java.io.Serial;
/**
* 可变 {@code double} 类型
*
@ -25,8 +27,12 @@ import cn.hutool.v7.core.comparator.CompareUtil;
* @since 3.0.1
*/
public class MutableDouble extends Number implements Comparable<MutableDouble>, Mutable<Number> {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
private double value;
/**

View File

@ -18,6 +18,8 @@ package cn.hutool.v7.core.lang.mutable;
import cn.hutool.v7.core.comparator.CompareUtil;
import java.io.Serial;
/**
* 可变 {@code float} 类型
*
@ -25,8 +27,12 @@ import cn.hutool.v7.core.comparator.CompareUtil;
* @since 3.0.1
*/
public class MutableFloat extends Number implements Comparable<MutableFloat>, Mutable<Number> {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
private float value;
/**

View File

@ -18,6 +18,8 @@ package cn.hutool.v7.core.lang.mutable;
import cn.hutool.v7.core.comparator.CompareUtil;
import java.io.Serial;
/**
* 可变 {@code int} 类型
*
@ -25,8 +27,12 @@ import cn.hutool.v7.core.comparator.CompareUtil;
* @since 3.0.1
*/
public class MutableInt extends Number implements Comparable<MutableInt>, Mutable<Number> {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
private int value;
/**

View File

@ -18,6 +18,8 @@ package cn.hutool.v7.core.lang.mutable;
import cn.hutool.v7.core.comparator.CompareUtil;
import java.io.Serial;
/**
* 可变 {@code long} 类型
*
@ -25,8 +27,12 @@ import cn.hutool.v7.core.comparator.CompareUtil;
* @since 3.0.1
*/
public class MutableLong extends Number implements Comparable<MutableLong>, Mutable<Number> {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
private long value;
/**

View File

@ -18,6 +18,7 @@ package cn.hutool.v7.core.lang.mutable;
import cn.hutool.v7.core.util.ObjUtil;
import java.io.Serial;
import java.io.Serializable;
import java.util.Objects;
@ -28,6 +29,7 @@ import java.util.Objects;
* @since 3.0.1
*/
public class MutableObj<T> implements Mutable<T>, Serializable{
@Serial
private static final long serialVersionUID = 1L;
/**
@ -41,6 +43,9 @@ public class MutableObj<T> implements Mutable<T>, Serializable{
return new MutableObj<>(value);
}
/**
*
*/
private T value;
/**

View File

@ -18,6 +18,8 @@ package cn.hutool.v7.core.lang.mutable;
import cn.hutool.v7.core.comparator.CompareUtil;
import java.io.Serial;
/**
* 可变 {@code short} 类型
*
@ -25,8 +27,12 @@ import cn.hutool.v7.core.comparator.CompareUtil;
* @since 3.0.1
*/
public class MutableShort extends Number implements Comparable<MutableShort>, Mutable<Number> {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
private short value;
/**

View File

@ -16,6 +16,7 @@
package cn.hutool.v7.core.lang.selector;
import java.io.Serial;
import java.util.ArrayList;
/**
@ -26,8 +27,12 @@ import java.util.ArrayList;
* @since 6.0.0
*/
public class IncrementSelector<T> extends ArrayList<T> implements Selector<T> {
@Serial
private static final long serialVersionUID = 1L;
/**
* 值索引
*/
private int position;
// region ----- Constructors

View File

@ -18,6 +18,7 @@ package cn.hutool.v7.core.lang.selector;
import cn.hutool.v7.core.collection.CollUtil;
import java.io.Serial;
import java.io.Serializable;
import java.util.SortedMap;
import java.util.TreeMap;
@ -41,6 +42,7 @@ import java.util.TreeMap;
* @since 3.3.0
*/
public class WeightRandomSelector<T> implements Selector<T>, Serializable {
@Serial
private static final long serialVersionUID = -8244697995702786499L;
/**
@ -53,6 +55,9 @@ public class WeightRandomSelector<T> implements Selector<T>, Serializable {
return new WeightRandomSelector<>();
}
/**
* 权重对象
*/
private final TreeMap<Integer, T> weightMap;
// region ----- Constructors

View File

@ -16,6 +16,7 @@
package cn.hutool.v7.core.map;
import java.io.Serial;
import java.util.Map;
import java.util.function.BiFunction;
import java.util.function.Function;
@ -31,8 +32,12 @@ import java.util.function.Function;
* @since 5.2.6
*/
public class BiMap<K, V> extends MapWrapper<K, V> {
@Serial
private static final long serialVersionUID = 1L;
/**
* 反向Map
*/
private Map<V, K> inverse;
/**

View File

@ -16,6 +16,7 @@
package cn.hutool.v7.core.map;
import java.io.Serial;
import java.util.Map;
import java.util.function.Function;
@ -28,8 +29,12 @@ import java.util.function.Function;
* @since 5.6.0
*/
public class FuncKeyMap<K, V> extends CustomKeyMap<K, V> {
@Serial
private static final long serialVersionUID = 1L;
/**
* 自定义KEY的函数
*/
private final Function<Object, K> keyFunc;
// ------------------------------------------------------------------------- Constructor start

View File

@ -16,6 +16,7 @@
package cn.hutool.v7.core.map;
import java.io.Serial;
import java.util.Map;
import java.util.function.Function;
import java.util.function.Supplier;
@ -29,9 +30,16 @@ import java.util.function.Supplier;
* @since 5.8.0
*/
public class FuncMap<K, V> extends TransMap<K, V> {
@Serial
private static final long serialVersionUID = 1L;
/**
* 自定义KEY的函数
*/
private final Function<Object, K> keyFunc;
/**
* 自定义value函数
*/
private final Function<Object, V> valueFunc;
// ------------------------------------------------------------------------- Constructor start

View File

@ -19,6 +19,7 @@ package cn.hutool.v7.core.map;
import cn.hutool.v7.core.lang.builder.Builder;
import java.io.Serial;
import java.util.Map;
import java.util.function.Supplier;
@ -30,8 +31,12 @@ import java.util.function.Supplier;
* @since 3.1.1
*/
public class MapBuilder<K, V> implements Builder<Map<K, V>> {
@Serial
private static final long serialVersionUID = 1L;
/**
* Map
*/
private final Map<K, V> map;
// region ----- of

View File

@ -23,6 +23,7 @@ import cn.hutool.v7.core.text.StrUtil;
import cn.hutool.v7.core.array.ArrayUtil;
import cn.hutool.v7.core.util.BooleanUtil;
import java.io.Serial;
import java.io.Serializable;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
@ -38,8 +39,12 @@ import java.util.Set;
* @since 3.2.0
*/
public class MapProxy implements Map<Object, Object>, TypeGetter<Object>, InvocationHandler, Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* Map
*/
@SuppressWarnings("rawtypes")
Map map;

View File

@ -20,10 +20,7 @@ import cn.hutool.v7.core.lang.Assert;
import cn.hutool.v7.core.lang.wrapper.Wrapper;
import cn.hutool.v7.core.util.ObjUtil;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.io.*;
import java.util.*;
import java.util.function.BiConsumer;
import java.util.function.BiFunction;
@ -39,6 +36,7 @@ import java.util.function.Supplier;
* @since 4.3.3
*/
public class MapWrapper<K, V> implements Map<K, V>, Iterable<Map.Entry<K, V>>, Wrapper<Map<K, V>>, Serializable, Cloneable {
@Serial
private static final long serialVersionUID = -7524578042008586382L;
/**
@ -241,11 +239,25 @@ public class MapWrapper<K, V> implements Map<K, V>, Iterable<Map.Entry<K, V>>, W
//---------------------------------------------------------------------------- Override default methods end
// region 序列化与反序列化重写
/**
* 写对象
* @param out 输出流
* @throws IOException IO异常
*/
@Serial
private void writeObject(final ObjectOutputStream out) throws IOException {
out.defaultWriteObject();
out.writeObject(this.raw);
}
/**
* 读对象
* @param in 输入流
* @throws IOException IO异常
* @throws ClassNotFoundException 类未找到异常
*/
@Serial
@SuppressWarnings("unchecked")
private void readObject(final ObjectInputStream in) throws IOException, ClassNotFoundException {
in.defaultReadObject();

View File

@ -20,6 +20,7 @@ import cn.hutool.v7.core.collection.CollUtil;
import cn.hutool.v7.core.collection.ListUtil;
import cn.hutool.v7.core.util.ObjUtil;
import java.io.Serial;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
@ -43,11 +44,21 @@ import java.util.function.BiFunction;
* @author Looly
*/
public class TableMap<K, V> implements Map<K, V>, Iterable<Map.Entry<K, V>>, Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 默认初始大小
*/
private static final int DEFAULT_CAPACITY = 10;
/**
* 键列表
*/
private final List<K> keys;
/**
* 值列表
*/
private final List<V> values;
/**

View File

@ -16,6 +16,7 @@
package cn.hutool.v7.core.map;
import java.io.Serial;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
@ -28,8 +29,12 @@ import java.util.Objects;
* @author pantao, Looly
*/
public class TolerantMap<K, V> extends MapWrapper<K, V> {
@Serial
private static final long serialVersionUID = -4158133823263496197L;
/**
* 默认值
*/
private final V defaultValue;
/**

View File

@ -20,6 +20,7 @@ import cn.hutool.v7.core.collection.ListUtil;
import cn.hutool.v7.core.lang.Assert;
import cn.hutool.v7.core.lang.tuple.Triple;
import java.io.Serial;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@ -36,10 +37,20 @@ import java.util.List;
* @since 6.0.0
*/
public class TripleTable<L, M, R> implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 左列表
*/
private final List<L> lefts;
/**
* 中列表
*/
private final List<M> middles;
/**
* 右列表
*/
private final List<R> rights;
/**

View File

@ -187,7 +187,13 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
final long[] readBufferReadCount;
final LinkedDeque<Node<K, V>> evictionDeque;
/**
* The number of weighted entries in the map.
*/
final AtomicLong weightedSize;
/**
* Map容量
*/
final AtomicLong capacity;
final Lock evictionLock;
@ -1441,11 +1447,20 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
@Serial
private static final long serialVersionUID = 1;
/**
* 序列化对象
* @return 缓存对象
*/
@Serial
Object writeReplace() {
return new SerializationProxy<>(this);
}
/**
* 反序列化对象
* @param stream 对象流
* @throws InvalidObjectException 无效对象异常
*/
@Serial
private void readObject(final ObjectInputStream stream) throws InvalidObjectException {
throw new InvalidObjectException("Proxy required");

View File

@ -18,6 +18,7 @@ package cn.hutool.v7.core.map.multi;
import cn.hutool.v7.core.func.SerSupplier;
import java.io.Serial;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@ -35,9 +36,12 @@ import java.util.function.Supplier;
* @since 4.3.3
*/
public class CollectionValueMap<K, V> extends AbsCollValueMap<K, V> {
@Serial
private static final long serialVersionUID = 9012989578038102983L;
/**
* 值集合工厂方法
*/
private final SerSupplier<Collection<V>> collFactory;
// ------------------------------------------------------------------------- Constructor start

View File

@ -20,6 +20,7 @@ import cn.hutool.v7.core.lang.ref.Ref;
import cn.hutool.v7.core.lang.ref.ReferenceUtil;
import cn.hutool.v7.core.map.MapUtil;
import java.io.Serial;
import java.io.Serializable;
import java.lang.ref.Reference;
import java.lang.ref.ReferenceQueue;
@ -37,10 +38,20 @@ import java.util.function.Function;
* @author Looly
*/
public abstract class ReferenceConcurrentMap<K, V> implements ConcurrentMap<K, V>, Iterable<Map.Entry<K, V>>, Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 键值对引用
*/
final ConcurrentMap<Ref<K>, Ref<V>> raw;
/**
* 键队列
*/
private final ReferenceQueue<K> lastKeyQueue;
/**
* 值队列
*/
private final ReferenceQueue<V> lastValueQueue;
/**
* 回收监听

View File

@ -18,6 +18,7 @@ package cn.hutool.v7.core.math;
import cn.hutool.v7.core.array.ArrayUtil;
import java.io.Serial;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
@ -31,8 +32,12 @@ import java.util.List;
* @since 4.0.7
*/
public class Arrangement implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 用于排列的数据
*/
private final String[] datas;
/**

View File

@ -18,6 +18,7 @@ package cn.hutool.v7.core.math;
import cn.hutool.v7.core.text.StrUtil;
import java.io.Serial;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
@ -31,8 +32,12 @@ import java.util.List;
* @since 4.0.6
*/
public class Combination implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 用于组合的数据
*/
private final String[] datas;
/**

View File

@ -16,14 +16,15 @@
package cn.hutool.v7.core.net.ssl;
import cn.hutool.v7.core.lang.builder.Builder;
import cn.hutool.v7.core.io.IORuntimeException;
import cn.hutool.v7.core.array.ArrayUtil;
import cn.hutool.v7.core.io.IORuntimeException;
import cn.hutool.v7.core.lang.builder.Builder;
import cn.hutool.v7.core.text.StrUtil;
import javax.net.ssl.KeyManager;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import java.io.Serial;
import java.security.*;
@ -42,12 +43,38 @@ import java.security.*;
* @since 5.5.2
*/
public class SSLContextBuilder implements SSLProtocols, Builder<SSLContext> {
@Serial
private static final long serialVersionUID = 1L;
//SSL/TLS 协议配置参数
/**
* 使用的 SSL/TLS 协议版本默认为 TLS
*/
private String protocol = TLS;
/**
* 密钥管理器数组用于管理本地密钥材料如客户端证书和私钥
* 在建立安全连接时提供本地身份验证所需的密钥
*/
private KeyManager[] keyManagers;
/**
* 信任管理器数组用于管理受信任的 CA 证书
* 决定哪些远程证书被视为可信如服务器证书验证
*/
private TrustManager[] trustManagers;
/**
* 安全随机数生成器用于生成加密操作所需的高质量随机数
* 影响密钥生成握手过程等安全性关键环节
*/
private SecureRandom secureRandom;
/**
* 安全提供者指定底层加密算法的实现提供者
* Bouncy CastleSunJSSE 影响可用算法和性能
*/
private Provider provider;