From 0220a1c55e613fb734218c28f206ff75b15ebb6b Mon Sep 17 00:00:00 2001 From: Looly Date: Mon, 15 Jul 2024 20:03:24 +0800 Subject: [PATCH] fix comment --- .../core/annotation/AnnotationProxy.java | 9 +++ .../dromara/hutool/core/bean/DynaBean.java | 6 ++ .../hutool/core/bean/copier/AbsCopier.java | 6 ++ .../hutool/core/cache/SimpleCache.java | 4 +- .../hutool/core/cache/impl/AbstractCache.java | 3 + .../hutool/core/cache/impl/CacheObj.java | 6 ++ .../core/cache/impl/ReentrantCache.java | 4 +- .../hutool/core/cache/impl/StampedCache.java | 12 +-- .../org/dromara/hutool/core/codec/Caesar.java | 4 +- .../dromara/hutool/core/codec/Hashids.java | 19 +++-- .../core/collection/iter/IterChain.java | 6 ++ .../core/collection/partition/Partition.java | 8 +- .../queue/CheckedLinkedBlockingQueue.java | 6 +- .../core/comparator/NullComparator.java | 6 ++ .../core/convert/impl/ReferenceConverter.java | 3 + .../dromara/hutool/core/data/id/ObjectId.java | 16 +--- .../hutool/core/data/id/SeataSnowflake.java | 4 +- .../hutool/core/data/id/Snowflake.java | 8 +- .../dromara/hutool/core/io/ReaderWrapper.java | 3 + .../hutool/core/io/checksum/CRC16.java | 3 + .../core/io/checksum/crc16/CRC16Checksum.java | 3 + .../dromara/hutool/core/io/copy/IoCopier.java | 3 + .../hutool/core/io/file/FileWrapper.java | 6 ++ .../hutool/core/io/file/LineSeparator.java | 25 +++++- .../hutool/core/io/resource/UrlResource.java | 8 +- .../dromara/hutool/core/io/unit/DataUnit.java | 3 + .../hutool/core/io/watch/WatchException.java | 58 +++++++++++--- .../core/lang/mutable/MutableEntry.java | 6 ++ .../core/lang/range/DefaultSegment.java | 6 ++ .../dromara/hutool/core/lang/tuple/Pair.java | 6 ++ .../hutool/core/lang/tuple/Triple.java | 4 + .../core/lang/wrapper/SimpleWrapper.java | 3 + .../core/map/concurrent/package-info.java | 24 +----- .../hutool/core/math/NumberValidator.java | 4 +- .../MultipartRequestInputStream.java | 3 + .../core/net/multipart/UploadSetting.java | 3 - .../hutool/core/spi/AbsServiceLoader.java | 14 +++- .../hutool/core/stream/EasyStream.java | 14 ++-- .../hutool/core/stream/StreamUtil.java | 4 +- .../stream/TransformableWrappedStream.java | 9 +-- .../hutool/core/stream/WrappedStream.java | 16 ++-- .../spliterators/DropWhileSpliterator.java | 19 ++++- .../spliterators/IterateSpliterator.java | 26 +++++-- .../hutool/core/text/AntPathMatcher.java | 71 +++++++++-------- .../core/text/bloom/AbstractFilter.java | 3 + .../hutool/core/text/escape/Html4Escape.java | 6 ++ .../core/text/escape/Html4Unescape.java | 14 +++- .../hutool/core/text/escape/XmlEscape.java | 3 + .../hutool/core/text/escape/XmlUnescape.java | 7 +- .../hutool/core/text/finder/TextFinder.java | 9 +++ .../core/text/placeholder/StrTemplate.java | 14 ++++ .../segment/AbstractPlaceholderSegment.java | 8 +- .../segment/IndexedPlaceholderSegment.java | 28 ++++--- .../placeholder/segment/LiteralSegment.java | 27 ++++--- .../segment/NamedPlaceholderSegment.java | 31 ++++---- .../segment/SinglePlaceholderSegment.java | 18 +++-- .../segment/StrTemplateSegment.java | 13 ++-- .../template/NamedPlaceholderStrTemplate.java | 4 + .../SinglePlaceholderStrTemplate.java | 7 +- .../hutool/core/thread/ThreadException.java | 60 ++++++++++++--- .../hutool/core/thread/lock/NoLock.java | 3 + pom.xml | 77 ++++++++----------- 62 files changed, 557 insertions(+), 249 deletions(-) diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/annotation/AnnotationProxy.java b/hutool-core/src/main/java/org/dromara/hutool/core/annotation/AnnotationProxy.java index 9ed51ae2c..0331cf72a 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/annotation/AnnotationProxy.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/annotation/AnnotationProxy.java @@ -32,8 +32,17 @@ import java.util.Map; public class AnnotationProxy implements Annotation, InvocationHandler, Serializable { private static final long serialVersionUID = 1L; + /** + * 注解 + */ private final T annotation; + /** + * 注解类型 + */ private final Class type; + /** + * 注解属性 + */ private final Map attributes; /** diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/bean/DynaBean.java b/hutool-core/src/main/java/org/dromara/hutool/core/bean/DynaBean.java index 37fa41ed9..7083097db 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/bean/DynaBean.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/bean/DynaBean.java @@ -37,7 +37,13 @@ import java.util.Map; public class DynaBean implements Cloneable, Serializable { private static final long serialVersionUID = 1L; + /** + * bean类 + */ private final Class beanClass; + /** + * bean对象 + */ private Object bean; /** diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/bean/copier/AbsCopier.java b/hutool-core/src/main/java/org/dromara/hutool/core/bean/copier/AbsCopier.java index d47722564..b0f15cab5 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/bean/copier/AbsCopier.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/bean/copier/AbsCopier.java @@ -28,7 +28,13 @@ import org.dromara.hutool.core.util.ObjUtil; */ public abstract class AbsCopier implements Copier { + /** + * 来源对象 + */ protected final S source; + /** + * 目标对象 + */ protected final T target; /** * 拷贝选项 diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/cache/SimpleCache.java b/hutool-core/src/main/java/org/dromara/hutool/core/cache/SimpleCache.java index cc41d1b01..1dc11aac2 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/cache/SimpleCache.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/cache/SimpleCache.java @@ -46,7 +46,9 @@ public class SimpleCache implements Iterable>, Serializabl * 池 */ private final Map, V> rawMap; - // 乐观读写锁 + /** + * 乐观读写锁 + */ private final ReadWriteLock lock = new ReentrantReadWriteLock(); /** * 写的时候每个key一把锁,降低锁的粒度 diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/cache/impl/AbstractCache.java b/hutool-core/src/main/java/org/dromara/hutool/core/cache/impl/AbstractCache.java index 9ff45a84f..6c632d31e 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/cache/impl/AbstractCache.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/cache/impl/AbstractCache.java @@ -42,6 +42,9 @@ import java.util.stream.Collectors; public abstract class AbstractCache implements Cache { private static final long serialVersionUID = 1L; + /** + * 缓存Map + */ protected Map, CacheObj> cacheMap; /** diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/cache/impl/CacheObj.java b/hutool-core/src/main/java/org/dromara/hutool/core/cache/impl/CacheObj.java index 73f9de884..564cccefb 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/cache/impl/CacheObj.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/cache/impl/CacheObj.java @@ -28,7 +28,13 @@ import java.util.concurrent.atomic.AtomicLong; public class CacheObj implements Serializable { private static final long serialVersionUID = 1L; + /** + * 键 + */ protected final K key; + /** + * 值对象 + */ protected final V obj; /** diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/cache/impl/ReentrantCache.java b/hutool-core/src/main/java/org/dromara/hutool/core/cache/impl/ReentrantCache.java index 22abbbf9a..fbe00af11 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/cache/impl/ReentrantCache.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/cache/impl/ReentrantCache.java @@ -29,7 +29,9 @@ import java.util.concurrent.locks.ReentrantLock; public abstract class ReentrantCache extends AbstractCache { private static final long serialVersionUID = 1L; - // 一些特殊缓存,例如使用了LinkedHashMap的缓存,由于get方法也会改变Map的结构,导致无法使用读写锁 + /** + * 一些特殊缓存,例如使用了LinkedHashMap的缓存,由于get方法也会改变Map的结构,导致无法使用读写锁 + */ protected final ReentrantLock lock = new ReentrantLock(); @Override diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/cache/impl/StampedCache.java b/hutool-core/src/main/java/org/dromara/hutool/core/cache/impl/StampedCache.java index f1cc3a34c..77c7f5974 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/cache/impl/StampedCache.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/cache/impl/StampedCache.java @@ -25,12 +25,14 @@ import java.util.concurrent.locks.StampedLock; * @author looly * @since 5.7.15 */ -public abstract class StampedCache extends AbstractCache{ +public abstract class StampedCache extends AbstractCache { private static final long serialVersionUID = 1L; - // 乐观锁,此处使用乐观锁解决读多写少的场景 - // get时乐观读,再检查是否修改,修改则转入悲观读重新读一遍,可以有效解决在写时阻塞大量读操作的情况。 - // see: https://www.cnblogs.com/jiagoushijuzi/p/13721319.html + /** + * 乐观锁,此处使用乐观锁解决读多写少的场景
+ * get时乐观读,再检查是否修改,修改则转入悲观读重新读一遍,可以有效解决在写时阻塞大量读操作的情况。
+ * see: https://www.cnblogs.com/jiagoushijuzi/p/13721319.html + */ protected final StampedLock lock = new StampedLock(); @Override @@ -163,7 +165,7 @@ public abstract class StampedCache extends AbstractCache{ // 无效移除 co = removeWithoutLock(key); - if(isUpdateCount){ + if (isUpdateCount) { missCount.increment(); } } finally { diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/codec/Caesar.java b/hutool-core/src/main/java/org/dromara/hutool/core/codec/Caesar.java index ca6c96e13..045104f98 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/codec/Caesar.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/codec/Caesar.java @@ -22,7 +22,9 @@ import org.dromara.hutool.core.lang.Assert; */ public class Caesar { - // 26个字母表 + /** + * 26个字母表 + */ public static final String TABLE = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"; /** diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/codec/Hashids.java b/hutool-core/src/main/java/org/dromara/hutool/core/codec/Hashids.java index 353418ad9..a4a93424f 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/codec/Hashids.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/codec/Hashids.java @@ -47,6 +47,17 @@ import java.util.stream.LongStream; */ public class Hashids implements Encoder, Decoder { + /** + * 默认编解码字符串 + */ + public static final char[] DEFAULT_ALPHABET = { + 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', + 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', + 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', + '1', '2', '3', '4', '5', '6', '7', '8', '9', '0' + }; + private static final int LOTTERY_MOD = 100; private static final double GUARD_THRESHOLD = 12; private static final double SEPARATOR_THRESHOLD = 3.5; @@ -54,14 +65,6 @@ public class Hashids implements Encoder, Decoder private static final int MIN_ALPHABET_LENGTH = 16; private static final Pattern HEX_VALUES_PATTERN = Pattern.compile("[\\w\\W]{1,12}"); - // 默认编解码字符串 - public static final char[] DEFAULT_ALPHABET = { - 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', - 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', - 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', - 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', - '1', '2', '3', '4', '5', '6', '7', '8', '9', '0' - }; // 默认分隔符 private static final char[] DEFAULT_SEPARATORS = { 'c', 'f', 'h', 'i', 's', 't', 'u', 'C', 'F', 'H', 'I', 'S', 'T', 'U' diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/collection/iter/IterChain.java b/hutool-core/src/main/java/org/dromara/hutool/core/collection/iter/IterChain.java index 6a276dd31..b575bd315 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/collection/iter/IterChain.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/collection/iter/IterChain.java @@ -26,6 +26,9 @@ import java.util.*; */ public class IterChain implements Iterator, Chain, IterChain> { + /** + * 所有的Iterator + */ protected final List> allIterators = new ArrayList<>(); /** @@ -68,6 +71,9 @@ public class IterChain implements Iterator, Chain, IterChain extends AbstractList> { + /** + * 被分区的列表 + */ protected final List list; + /** + * 每个分区的长度 + */ protected final int size; /** @@ -54,7 +60,7 @@ public class Partition extends AbstractList> { public int size() { // 此处采用动态计算,以应对list变 final int size = this.size; - if(0 == size){ + if (0 == size) { return 0; } diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/collection/queue/CheckedLinkedBlockingQueue.java b/hutool-core/src/main/java/org/dromara/hutool/core/collection/queue/CheckedLinkedBlockingQueue.java index 3628d32bc..b7eacfe37 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/collection/queue/CheckedLinkedBlockingQueue.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/collection/queue/CheckedLinkedBlockingQueue.java @@ -21,12 +21,16 @@ import java.util.function.Predicate; * 自定义加入前检查的{@link LinkedBlockingQueue},给定一个检查函数,在加入元素前检查此函数
* 原理是通过Runtime#freeMemory()获取剩余内存,当剩余内存低于指定的阈值时,不再加入。 * + * @param 元素类型 * @author looly * @since 6.0.0 */ public class CheckedLinkedBlockingQueue extends LinkedBlockingQueue { private static final long serialVersionUID = 1L; + /** + * 检查函数 + */ protected final Predicate checker; /** @@ -42,7 +46,7 @@ public class CheckedLinkedBlockingQueue extends LinkedBlockingQueue { /** * 构造 * - * @param c 初始集合 + * @param c 初始集合 * @param checker 检查函数 */ public CheckedLinkedBlockingQueue(final Collection c, final Predicate checker) { diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/comparator/NullComparator.java b/hutool-core/src/main/java/org/dromara/hutool/core/comparator/NullComparator.java index 4549916bf..f61462336 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/comparator/NullComparator.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/comparator/NullComparator.java @@ -30,7 +30,13 @@ import java.util.Objects; public class NullComparator implements Comparator, Serializable { private static final long serialVersionUID = 1L; + /** + * 是否{@code null}最大,排在最后 + */ protected final boolean nullGreater; + /** + * 实际比较器 + */ protected final Comparator comparator; /** diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/convert/impl/ReferenceConverter.java b/hutool-core/src/main/java/org/dromara/hutool/core/convert/impl/ReferenceConverter.java index 05709e01f..1f892cbc1 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/convert/impl/ReferenceConverter.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/convert/impl/ReferenceConverter.java @@ -32,6 +32,9 @@ import java.lang.reflect.Type; public class ReferenceConverter extends AbstractConverter { private static final long serialVersionUID = 1L; + /** + * 单例 + */ public static ReferenceConverter INSTANCE = new ReferenceConverter(); @SuppressWarnings("unchecked") diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/data/id/ObjectId.java b/hutool-core/src/main/java/org/dromara/hutool/core/data/id/ObjectId.java index 203333ef8..a156424cf 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/data/id/ObjectId.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/data/id/ObjectId.java @@ -29,18 +29,10 @@ import java.util.concurrent.atomic.AtomicInteger; * 4. INC 自增计数器。确保同一秒内产生objectId的唯一性。 * * - * - * - * - * - * - * - * - * - * - * - * - *
时间戳随机数自增计数器
444
+ *
+ *     | 时间戳 | 随机数 | 自增计数器 |
+ *     |   4   |   4   |    4     |
+ * 
*

* 参考:... * diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/data/id/SeataSnowflake.java b/hutool-core/src/main/java/org/dromara/hutool/core/data/id/SeataSnowflake.java index e723442e6..f72b22893 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/data/id/SeataSnowflake.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/data/id/SeataSnowflake.java @@ -46,7 +46,9 @@ public class SeataSnowflake implements Generator, Serializable { // 节点ID长度 private static final int NODE_ID_BITS = 10; - // 节点ID的最大值,1023 + /** + * 节点ID的最大值,1023 + */ protected static final int MAX_NODE_ID = ~(-1 << NODE_ID_BITS); // 时间戳长度 private static final int TIMESTAMP_BITS = 41; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/data/id/Snowflake.java b/hutool-core/src/main/java/org/dromara/hutool/core/data/id/Snowflake.java index 3c8e7cb4e..f77a12a61 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/data/id/Snowflake.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/data/id/Snowflake.java @@ -53,10 +53,14 @@ public class Snowflake implements Generator, Serializable { */ public static final long DEFAULT_TWEPOCH = 1288834974657L; private static final long WORKER_ID_BITS = 5L; - // 最大支持机器节点数0~31,一共32个 + /** + * 最大支持机器节点数0~31,一共32个 + */ protected static final long MAX_WORKER_ID = ~(-1L << WORKER_ID_BITS); private static final long DATA_CENTER_ID_BITS = 5L; - // 最大支持数据中心节点数0~31,一共32个 + /** + * 最大支持数据中心节点数0~31,一共32个 + */ protected static final long MAX_DATA_CENTER_ID = ~(-1L << DATA_CENTER_ID_BITS); // 序列号12位(表示只允许序号的范围为:0-4095) private static final long SEQUENCE_BITS = 12L; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/ReaderWrapper.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/ReaderWrapper.java index 6c3e19d64..7d82c9d36 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/ReaderWrapper.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/ReaderWrapper.java @@ -26,6 +26,9 @@ import java.nio.CharBuffer; */ public class ReaderWrapper extends Reader implements Wrapper { + /** + * 原始Reader + */ protected final Reader raw; /** diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/checksum/CRC16.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/checksum/CRC16.java index 3f592ecd6..d43e14ec4 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/checksum/CRC16.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/checksum/CRC16.java @@ -29,6 +29,9 @@ public class CRC16 implements Checksum, Serializable { private final CRC16Checksum crc16; + /** + * 构造 + */ public CRC16() { this(new CRC16IBM()); } diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/checksum/crc16/CRC16Checksum.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/checksum/crc16/CRC16Checksum.java index 8a982e94f..6909d841b 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/checksum/crc16/CRC16Checksum.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/checksum/crc16/CRC16Checksum.java @@ -33,6 +33,9 @@ public abstract class CRC16Checksum implements Checksum, Serializable { */ protected int wCRCin; + /** + * 构造 + */ public CRC16Checksum(){ reset(); } diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/copy/IoCopier.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/copy/IoCopier.java index d43475a0c..718d0a7a3 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/copy/IoCopier.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/copy/IoCopier.java @@ -26,6 +26,9 @@ import org.dromara.hutool.core.io.StreamProgress; */ public abstract class IoCopier { + /** + * 缓存大小 + */ protected final int bufferSize; /** * 拷贝总数 diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileWrapper.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileWrapper.java index 2581fe805..8263d8bc8 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileWrapper.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileWrapper.java @@ -30,7 +30,13 @@ import java.nio.charset.StandardCharsets; public class FileWrapper implements Wrapper, Serializable { private static final long serialVersionUID = 1L; + /** + * 被包装的文件 + */ protected File file; + /** + * 编码 + */ protected Charset charset; /** diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/LineSeparator.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/LineSeparator.java index c523ebac1..08d8104b7 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/LineSeparator.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/LineSeparator.java @@ -21,26 +21,43 @@ package org.dromara.hutool.core.io.file; * Windows系统换行符:"\r\n" * * + * @author Looly * @see #MAC * @see #LINUX * @see #WINDOWS - * @author Looly * @since 3.1.0 */ public enum LineSeparator { - /** Mac系统换行符:"\r" */ + + /** + * Mac系统换行符:"\r" + */ MAC("\r"), - /** Linux系统换行符:"\n" */ + /** + * Linux系统换行符:"\n" + */ LINUX("\n"), - /** Windows系统换行符:"\r\n" */ + /** + * Windows系统换行符:"\r\n" + */ WINDOWS("\r\n"); private final String value; + /** + * 构造 + * + * @param lineSeparator 换行符 + */ LineSeparator(final String lineSeparator) { this.value = lineSeparator; } + /** + * 获取换行符值 + * + * @return 值 + */ public String getValue() { return this.value; } diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/resource/UrlResource.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/resource/UrlResource.java index afba49659..0593a1752 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/resource/UrlResource.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/resource/UrlResource.java @@ -32,9 +32,15 @@ import java.net.URL; public class UrlResource implements Resource, Serializable { private static final long serialVersionUID = 1L; + /** + * URL + */ protected URL url; - private long lastModified = 0; + /** + * 资源名称 + */ protected String name; + private long lastModified = 0; //-------------------------------------------------------------------------------------- Constructor start diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/unit/DataUnit.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/unit/DataUnit.java index e122a7d88..71cdf035a 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/unit/DataUnit.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/unit/DataUnit.java @@ -56,6 +56,9 @@ public enum DataUnit { */ TERABYTES("TB", DataSize.ofTerabytes(1)); + /** + * 单位名称列表 + */ public static final String[] UNIT_NAMES = new String[]{"B", "KB", "MB", "GB", "TB", "PB", "EB"}; private final String suffix; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/watch/WatchException.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/watch/WatchException.java index bbfc656b4..7b7bb82da 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/watch/WatchException.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/watch/WatchException.java @@ -12,34 +12,74 @@ package org.dromara.hutool.core.io.watch; -import org.dromara.hutool.core.exception.ExceptionUtil; -import org.dromara.hutool.core.text.StrUtil; +import org.dromara.hutool.core.exception.HutoolException; /** * 监听异常 * @author Looly * */ -public class WatchException extends RuntimeException { +public class WatchException extends HutoolException { private static final long serialVersionUID = 8068509879445395353L; + /** + * 构造 + * + * @param e 异常 + */ public WatchException(final Throwable e) { - super(ExceptionUtil.getMessage(e), e); + super(e); } + /** + * 构造 + * + * @param message 消息 + */ public WatchException(final String message) { super(message); } + /** + * 构造 + * + * @param messageTemplate 消息模板 + * @param params 参数 + */ public WatchException(final String messageTemplate, final Object... params) { - super(StrUtil.format(messageTemplate, params)); + super(messageTemplate, params); } - public WatchException(final String message, final Throwable throwable) { - super(message, throwable); + /** + * 构造 + * + * @param message 消息 + * @param cause 被包装的子异常 + */ + public WatchException(final String message, final Throwable cause) { + super(message, cause); } - public WatchException(final Throwable throwable, final String messageTemplate, final Object... params) { - super(StrUtil.format(messageTemplate, params), throwable); + /** + * 构造 + * + * @param message 消息 + * @param cause 被包装的子异常 + * @param enableSuppression 是否启用抑制 + * @param writableStackTrace 堆栈跟踪是否应该是可写的 + */ + public WatchException(final String message, final Throwable cause, final boolean enableSuppression, final boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } + + /** + * 构造 + * + * @param cause 被包装的子异常 + * @param messageTemplate 消息模板 + * @param params 参数 + */ + public WatchException(final Throwable cause, final String messageTemplate, final Object... params) { + super(cause, messageTemplate, params); } } diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/mutable/MutableEntry.java b/hutool-core/src/main/java/org/dromara/hutool/core/lang/mutable/MutableEntry.java index f5edae6c0..1be024b69 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/mutable/MutableEntry.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/lang/mutable/MutableEntry.java @@ -40,7 +40,13 @@ public class MutableEntry extends AbsEntry implements Mutable(key, value); } + /** + * 键 + */ protected K key; + /** + * 值 + */ protected V value; /** diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/range/DefaultSegment.java b/hutool-core/src/main/java/org/dromara/hutool/core/lang/range/DefaultSegment.java index 4f418eebb..d8f934d99 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/range/DefaultSegment.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/lang/range/DefaultSegment.java @@ -23,7 +23,13 @@ import org.dromara.hutool.core.text.StrUtil; */ public class DefaultSegment implements Segment { + /** + * 起始位置 + */ protected T beginIndex; + /** + * 结束位置 + */ protected T endIndex; /** diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/tuple/Pair.java b/hutool-core/src/main/java/org/dromara/hutool/core/lang/tuple/Pair.java index a160cd698..3f41dc38e 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/tuple/Pair.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/lang/tuple/Pair.java @@ -42,7 +42,13 @@ public class Pair implements Serializable, Cloneable { return new Pair<>(left, right); } + /** + * 左值(第一个值) + */ protected L left; + /** + * 右值(第二个值) + */ protected R right; /** diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/tuple/Triple.java b/hutool-core/src/main/java/org/dromara/hutool/core/lang/tuple/Triple.java index 1557ff936..e0b965b2a 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/tuple/Triple.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/lang/tuple/Triple.java @@ -42,6 +42,9 @@ public class Triple extends Pair { return new Triple<>(left, middle, right); } + /** + * 中值 + */ protected M middle; /** @@ -57,6 +60,7 @@ public class Triple extends Pair { } // region ----- getXXX + /** * 获取中值 * diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/wrapper/SimpleWrapper.java b/hutool-core/src/main/java/org/dromara/hutool/core/lang/wrapper/SimpleWrapper.java index a1d199af2..eaa3c2a26 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/wrapper/SimpleWrapper.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/lang/wrapper/SimpleWrapper.java @@ -22,6 +22,9 @@ package org.dromara.hutool.core.lang.wrapper; */ public class SimpleWrapper implements Wrapper { + /** + * 原始对象 + */ protected final T raw; /** diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/map/concurrent/package-info.java b/hutool-core/src/main/java/org/dromara/hutool/core/map/concurrent/package-info.java index 71693e11a..8a1fc1bb2 100755 --- a/hutool-core/src/main/java/org/dromara/hutool/core/map/concurrent/package-info.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/map/concurrent/package-info.java @@ -10,28 +10,10 @@ * See the Mulan PSL v2 for more details. */ + /** - * This package contains an implementation of a bounded - * {@link java.util.concurrent.ConcurrentMap} data structure. - *

- * {@link org.dromara.hutool.core.map.concurrent.Weigher} is a simple interface - * for determining how many units of capacity an entry consumes. Depending on - * which concrete Weigher class is used, an entry may consume a different amount - * of space within the cache. The - * {@link org.dromara.hutool.core.map.concurrent.Weighers} class provides - * utility methods for obtaining the most common kinds of implementations. - *

- * {@link org.dromara.hutool.core.map.concurrent.ConcurrentLinkedHashMap#listener} provides the - * ability to be notified when an entry is evicted from the map. An eviction - * occurs when the entry was automatically removed due to the map exceeding a - * capacity threshold. It is not called when an entry was explicitly removed. - *

- * The {@link org.dromara.hutool.core.map.concurrent.ConcurrentLinkedHashMap} - * class supplies an efficient, scalable, thread-safe, bounded map. As with the - * Java Collections Framework the "Concurrent" prefix is used to - * indicate that the map is not governed by a single exclusion lock. + * 并发Map工具类 * - * @see - * http://code.google.com/p/concurrentlinkedhashmap/ + * @author Looly */ package org.dromara.hutool.core.map.concurrent; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/math/NumberValidator.java b/hutool-core/src/main/java/org/dromara/hutool/core/math/NumberValidator.java index c9e9e8e3b..9d4891a1a 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/math/NumberValidator.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/math/NumberValidator.java @@ -158,8 +158,8 @@ public class NumberValidator { * * @param s 校验的字符串, 只能含有 正负号、数字字符 和 {@literal X/x} * @return 是否为 {@link Integer}类型 - * @apiNote 6.0.0 支持8进制和16进制 * @see Integer#decode(String) + * @since 6.0.0 */ public static boolean isInteger(final String s) { if (!isNumber(s)) { @@ -185,7 +185,7 @@ public class NumberValidator { * * @param s 校验的字符串, 只能含有 正负号、数字字符、{@literal X/x} 和 后缀{@literal L/l} * @return 是否为 {@link Long}类型 - * @apiNote 6.0.0 支持8进制和16进制数字 + * @since 6.0.0 * @since 4.0.0 */ public static boolean isLong(final String s) { diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/net/multipart/MultipartRequestInputStream.java b/hutool-core/src/main/java/org/dromara/hutool/core/net/multipart/MultipartRequestInputStream.java index c6817a7c8..12c089613 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/net/multipart/MultipartRequestInputStream.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/net/multipart/MultipartRequestInputStream.java @@ -104,6 +104,9 @@ public class MultipartRequestInputStream extends BufferedInputStream { // ---------------------------------------------------------------- data header + /** + * 最后的头部信息 + */ protected UploadFileHeader lastHeader; /** diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/net/multipart/UploadSetting.java b/hutool-core/src/main/java/org/dromara/hutool/core/net/multipart/UploadSetting.java index 7b268fe80..0ce488f12 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/net/multipart/UploadSetting.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/net/multipart/UploadSetting.java @@ -31,9 +31,6 @@ public class UploadSetting { /** 扩展名是允许列表还是禁止列表 */ protected boolean isAllowFileExts = true; - public UploadSetting() { - } - // ---------------------------------------------------------------------- Setters and Getters start /** * @return 获得最大文件大小,-1表示无限制 diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/spi/AbsServiceLoader.java b/hutool-core/src/main/java/org/dromara/hutool/core/spi/AbsServiceLoader.java index e1583e9a4..f25588741 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/spi/AbsServiceLoader.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/spi/AbsServiceLoader.java @@ -25,16 +25,28 @@ import java.nio.charset.Charset; */ public abstract class AbsServiceLoader implements ServiceLoader { + /** + * 路径前缀 + */ protected final String pathPrefix; + /** + * 服务类 + */ protected final Class serviceClass; + /** + * 自定义类加载器 + */ protected final ClassLoader classLoader; + /** + * 编码 + */ protected final Charset charset; /** * 构造 * * @param pathPrefix 路径前缀 - * @param serviceClass 服务名称 + * @param serviceClass 服务类 * @param classLoader 自定义类加载器, {@code null}表示使用默认当前的类加载器 * @param charset 编码,默认UTF-8 */ diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/stream/EasyStream.java b/hutool-core/src/main/java/org/dromara/hutool/core/stream/EasyStream.java index 1e9128868..f21f33d43 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/stream/EasyStream.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/stream/EasyStream.java @@ -471,17 +471,17 @@ public class EasyStream extends AbstractEnhancedWrappedStream extends Consumer, org.dromara.hutool.core.lang.builder.Builder> { /** - * Adds an element to the unwrap being built. + * Adds an element to the unwrap being built.
+ * The default implementation behaves as if: + *

{@code
+		 *   accept(t)
+		 *   return this;
+		 * }
* - * @param t the element to add + * @param t 需要添加的元素 * @return {@code this} builder * @throws IllegalStateException if the builder has already transitioned to * the built state - * @implSpec The default implementation behaves as if: - *
{@code
-		 * 										    accept(t)
-		 * 										    return this;
-		 *                                    }
*/ default Builder add(final T t) { accept(t); diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/stream/StreamUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/stream/StreamUtil.java index c3d6630bd..fc3110148 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/stream/StreamUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/stream/StreamUtil.java @@ -214,7 +214,7 @@ public class StreamUtil { public static Stream iterate(final T seed, final Predicate hasNext, final UnaryOperator next) { Objects.requireNonNull(next); Objects.requireNonNull(hasNext); - return StreamSupport.stream(IterateSpliterator.create(seed, hasNext, next), false); + return StreamSupport.stream(IterateSpliterator.of(seed, hasNext, next), false); } /** @@ -305,7 +305,7 @@ public class StreamUtil { return Stream.empty(); } Objects.requireNonNull(predicate); - return createStatefulNewStream(source, DropWhileSpliterator.create(source.spliterator(), predicate)); + return createStatefulNewStream(source, DropWhileSpliterator.of(source.spliterator(), predicate)); } // region ----- 私有方法 diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/stream/TransformableWrappedStream.java b/hutool-core/src/main/java/org/dromara/hutool/core/stream/TransformableWrappedStream.java index ec5762f84..9245cdb3c 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/stream/TransformableWrappedStream.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/stream/TransformableWrappedStream.java @@ -263,11 +263,7 @@ public interface TransformableWrappedStream{@code * Stream.of("one", "two", "three", "four") @@ -277,6 +273,9 @@ public interface TransformableWrappedStream System.out.println("Mapped value: " + e + " Mapped idx:" + i)) * .collect(Collectors.toList()); * } + * + * @param action 指定的函数 + * @return 返回叠加操作后的FastStream */ default S peekIdx(final BiConsumer action) { Objects.requireNonNull(action); diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/stream/WrappedStream.java b/hutool-core/src/main/java/org/dromara/hutool/core/stream/WrappedStream.java index 8848c5a3b..24cd6c53b 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/stream/WrappedStream.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/stream/WrappedStream.java @@ -188,21 +188,19 @@ public interface WrappedStream> extends Stream< } /** - * 返回与指定函数将元素作为参数执行后组成的流。 - * 这是一个无状态中间操作 - * - * @param action 指定的函数 - * @return 返回叠加操作后的FastStream - * @apiNote 该方法存在的意义主要是用来调试 - * 当你需要查看经过操作管道某处的元素,可以执行以下操作: + * 返回与指定函数将元素作为参数执行后组成的流。这是一个无状态中间操作
+ * 该方法存在的意义主要是用来调试。当你需要查看经过操作管道某处的元素,可以执行以下操作: *
{@code
 	 *     .of("one", "two", "three", "four")
 	 *         .filter(e -> e.length() > 3)
-	 *         .peek(e -> System.out.println("Filtered value: " + e))
+	 *         .peek(e -> Console.log("Filtered value: " + e))
 	 *         .map(String::toUpperCase)
-	 *         .peek(e -> System.out.println("Mapped value: " + e))
+	 *         .peek(e -> Console.log("Mapped value: " + e))
 	 *         .collect(Collectors.toList());
 	 * }
+ * + * @param action 指定的函数 + * @return 返回叠加操作后的FastStream */ @Override default S peek(final Consumer action) { diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/stream/spliterators/DropWhileSpliterator.java b/hutool-core/src/main/java/org/dromara/hutool/core/stream/spliterators/DropWhileSpliterator.java index 8355ed114..de83331fa 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/stream/spliterators/DropWhileSpliterator.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/stream/spliterators/DropWhileSpliterator.java @@ -21,12 +21,21 @@ import java.util.function.Predicate; * dropWhile 的 Spliterator *

借鉴自StreamEx

* + * @param 元素类型 * @author emptypoint * @since 6.0.0 */ public class DropWhileSpliterator implements Spliterator { - public static DropWhileSpliterator create(final Spliterator source, final Predicate predicate) { + /** + * 创建 + * + * @param source {@link Spliterator} + * @param predicate 断言 + * @param 元素类型 + * @return DropWhileSpliterator + */ + public static DropWhileSpliterator of(final Spliterator source, final Predicate predicate) { return new DropWhileSpliterator<>(source, predicate); } @@ -34,7 +43,13 @@ public class DropWhileSpliterator implements Spliterator { private final Predicate predicate; private boolean isFound = false; - private DropWhileSpliterator(final Spliterator source, final Predicate predicate) { + /** + * 构造 + * + * @param source {@link Spliterator} + * @param predicate 断言 + */ + public DropWhileSpliterator(final Spliterator source, final Predicate predicate) { this.source = source; this.predicate = predicate; } diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/stream/spliterators/IterateSpliterator.java b/hutool-core/src/main/java/org/dromara/hutool/core/stream/spliterators/IterateSpliterator.java index 2b469c984..b305a7506 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/stream/spliterators/IterateSpliterator.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/stream/spliterators/IterateSpliterator.java @@ -22,10 +22,23 @@ import java.util.function.UnaryOperator; /** * 无限有序流 的Spliterator * + * @param 流元素类型 * @author VampireAchao * @since 6.0.0 */ public class IterateSpliterator extends Spliterators.AbstractSpliterator { + + /** + * @param seed 初始值 + * @param hasNext 是否有下一个断言 + * @param next 下一个值生产者 + * @param 流元素类型 + * @return IterateSpliterator + */ + public static IterateSpliterator of(final T seed, final Predicate hasNext, final UnaryOperator next) { + return new IterateSpliterator<>(seed, hasNext, next); + } + private final T seed; private final Predicate hasNext; private final UnaryOperator next; @@ -34,20 +47,19 @@ public class IterateSpliterator extends Spliterators.AbstractSpliterator { private boolean finished; /** - * Creates a spliterator reporting the given estimated size and - * additionalCharacteristics. + * 构造 + * + * @param seed 初始值 + * @param hasNext 是否有下一个断言 + * @param next 下一个值生产者 */ - IterateSpliterator(final T seed, final Predicate hasNext, final UnaryOperator next) { + public IterateSpliterator(final T seed, final Predicate hasNext, final UnaryOperator next) { super(Long.MAX_VALUE, Spliterator.ORDERED | Spliterator.IMMUTABLE); this.seed = seed; this.hasNext = hasNext; this.next = next; } - public static IterateSpliterator create(final T seed, final Predicate hasNext, final UnaryOperator next) { - return new IterateSpliterator<>(seed, hasNext, next); - } - @Override public boolean tryAdvance(final Consumer action) { Objects.requireNonNull(action); diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/text/AntPathMatcher.java b/hutool-core/src/main/java/org/dromara/hutool/core/text/AntPathMatcher.java index a005fe3bf..cbbfaa507 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/text/AntPathMatcher.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/text/AntPathMatcher.java @@ -437,7 +437,7 @@ public class AntPathMatcher { */ protected String[] tokenizePath(final String path) { return SplitUtil.split(path, this.pathSeparator, this.trimTokens, true) - .toArray(new String[0]); + .toArray(new String[0]); } /** @@ -530,7 +530,7 @@ public class AntPathMatcher { * 提取参数 * * @param pattern 模式 - * @param path 路径 + * @param path 路径 * @return 参数 */ public Map extractUriTemplateVariables(final String pattern, final String path) { @@ -548,22 +548,22 @@ public class AntPathMatcher { * the first pattern contains a file extension match (e.g., {@code *.html}). * In that case, the second pattern will be merged into the first. Otherwise, * an {@code IllegalArgumentException} will be thrown. - *

Examples

- * - * - * - * - * - * - * - * - * - * - * - * - * - * - * + *
Pattern 1Pattern 2Result
{@code null}{@code null} 
/hotels{@code null}/hotels
{@code null}/hotels/hotels
/hotels/bookings/hotels/bookings
/hotelsbookings/hotels/bookings
/hotels/*/bookings/hotels/bookings
/hotels/**/bookings/hotels/**/bookings
/hotels{hotel}/hotels/{hotel}
/hotels/*{hotel}/hotels/{hotel}
/hotels/**{hotel}/hotels/**/{hotel}
/*.html/hotels.html/hotels.html
/*.html/hotels/hotels.html
/*.html/*.txt{@code IllegalArgumentException}
+ * + * + * + * + * + * + * + * + * + * + * + * + * + * + * *
Examples
Pattern 1Pattern 2Result
{@code null}{@code null} 
/hotels{@code null}/hotels
{@code null}/hotels/hotels
/hotels/bookings/hotels/bookings
/hotelsbookings/hotels/bookings
/hotels/*/bookings/hotels/bookings
/hotels/**/bookings/hotels/**/bookings
/hotels{hotel}/hotels/{hotel}
/hotels/*{hotel}/hotels/{hotel}
/hotels/**{hotel}/hotels/**/{hotel}
/*.html/hotels.html/hotels.html
/*.html/hotels/hotels.html
/*.html/*.txt{@code IllegalArgumentException}
* * @param pattern1 the first pattern @@ -677,6 +677,12 @@ public class AntPathMatcher { private final List variableNames = new ArrayList<>(); + /** + * Create a new {@code AntPathStringMatcher} that will match the supplied {@code pattern} + * + * @param pattern the pattern to match against + * @param caseSensitive 是否大小写不敏感 + */ public AntPathStringMatcher(final String pattern, final boolean caseSensitive) { this.rawPattern = pattern; this.caseSensitive = caseSensitive; @@ -714,7 +720,7 @@ public class AntPathMatcher { this.exactMatch = false; patternBuilder.append(quote(pattern, end, pattern.length())); this.pattern = (this.caseSensitive ? Pattern.compile(patternBuilder.toString()) : - Pattern.compile(patternBuilder.toString(), Pattern.CASE_INSENSITIVE)); + Pattern.compile(patternBuilder.toString(), Pattern.CASE_INSENSITIVE)); } } @@ -741,15 +747,15 @@ public class AntPathMatcher { if (uriTemplateVariables != null) { if (this.variableNames.size() != matcher.groupCount()) { throw new IllegalArgumentException("The number of capturing groups in the pattern segment " + - this.pattern + " does not match the number of URI template variables it defines, " + - "which can occur if capturing groups are used in a URI template regex. " + - "Use non-capturing groups instead."); + this.pattern + " does not match the number of URI template variables it defines, " + + "which can occur if capturing groups are used in a URI template regex. " + + "Use non-capturing groups instead."); } for (int i = 1; i <= matcher.groupCount(); i++) { final String name = this.variableNames.get(i - 1); if (name.startsWith("*")) { throw new IllegalArgumentException("Capturing patterns (" + name + ") are not " + - "supported by the AntPathMatcher. Use the PathPatternParser instead."); + "supported by the AntPathMatcher. Use the PathPatternParser instead."); } final String value = matcher.group(i); uriTemplateVariables.put(name, value); @@ -769,18 +775,23 @@ public class AntPathMatcher { * {@link #getPatternComparator(String)}. *

In order, the most "generic" pattern is determined by the following: *

    - *
  • if it's null or a capture all pattern (i.e. it is equal to "/**")
  • - *
  • if the other pattern is an actual match
  • - *
  • if it's a catch-all pattern (i.e. it ends with "**"
  • - *
  • if it's got more "*" than the other pattern
  • - *
  • if it's got more "{foo}" than the other pattern
  • - *
  • if it's shorter than the other pattern
  • + *
  • if it's null or a capture all pattern (i.e. it is equal to "/**")
  • + *
  • if the other pattern is an actual match
  • + *
  • if it's a catch-all pattern (i.e. it ends with "**"
  • + *
  • if it's got more "*" than the other pattern
  • + *
  • if it's got more "{foo}" than the other pattern
  • + *
  • if it's shorter than the other pattern
  • *
*/ protected static class AntPatternComparator implements Comparator { private final String path; + /** + * 构造 + * + * @param path 路径 + */ public AntPatternComparator(final String path) { this.path = path; } @@ -931,7 +942,7 @@ public class AntPathMatcher { public int getLength() { if (this.length == null) { this.length = (this.pattern != null ? - VARIABLE_PATTERN.matcher(this.pattern).replaceAll("#").length() : 0); + VARIABLE_PATTERN.matcher(this.pattern).replaceAll("#").length() : 0); } return this.length; } diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/text/bloom/AbstractFilter.java b/hutool-core/src/main/java/org/dromara/hutool/core/text/bloom/AbstractFilter.java index 40e2d3adb..e19512136 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/text/bloom/AbstractFilter.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/text/bloom/AbstractFilter.java @@ -23,6 +23,9 @@ public abstract class AbstractFilter implements BloomFilter { private static final long serialVersionUID = 1L; private final BitSet bitSet; + /** + * 容量 + */ protected int size; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/text/escape/Html4Escape.java b/hutool-core/src/main/java/org/dromara/hutool/core/text/escape/Html4Escape.java index c409f9ac1..8819f7995 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/text/escape/Html4Escape.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/text/escape/Html4Escape.java @@ -24,6 +24,9 @@ import org.dromara.hutool.core.text.replacer.LookupReplacer; public class Html4Escape extends XmlEscape { private static final long serialVersionUID = 1L; + /** + * ISO8859_1 转义字符 + */ @SuppressWarnings("UnnecessaryUnicodeEscape") protected static final String[][] ISO8859_1_ESCAPE = { // { "\u00A0", " " }, // non-breaking space @@ -124,6 +127,9 @@ public class Html4Escape extends XmlEscape { { "\u00FF", "ÿ" }, // � - lowercase y, umlaut }; + /** + * HTML 4.01 extended entities. + */ @SuppressWarnings("UnnecessaryUnicodeEscape") protected static final String[][] HTML40_EXTENDED_ESCAPE = { // diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/text/escape/Html4Unescape.java b/hutool-core/src/main/java/org/dromara/hutool/core/text/escape/Html4Unescape.java index 7be13265a..fd8038e25 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/text/escape/Html4Unescape.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/text/escape/Html4Unescape.java @@ -18,14 +18,22 @@ import org.dromara.hutool.core.text.replacer.LookupReplacer; * HTML4的UNESCAPE * * @author looly - * */ public class Html4Unescape extends XmlUnescape { private static final long serialVersionUID = 1L; - protected static final String[][] ISO8859_1_UNESCAPE = InternalEscapeUtil.invert(Html4Escape.ISO8859_1_ESCAPE); - protected static final String[][] HTML40_EXTENDED_UNESCAPE = InternalEscapeUtil.invert(Html4Escape.HTML40_EXTENDED_ESCAPE); + /** + * ISO8859_1的UNESCAPE + */ + protected static final String[][] ISO8859_1_UNESCAPE = InternalEscapeUtil.invert(Html4Escape.ISO8859_1_ESCAPE); + /** + * HTML40_EXTENDED的UNESCAPE + */ + protected static final String[][] HTML40_EXTENDED_UNESCAPE = InternalEscapeUtil.invert(Html4Escape.HTML40_EXTENDED_ESCAPE); + /** + * 构造 + */ public Html4Unescape() { super(); addChain(new LookupReplacer(ISO8859_1_UNESCAPE)); diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/text/escape/XmlEscape.java b/hutool-core/src/main/java/org/dromara/hutool/core/text/escape/XmlEscape.java index c143955ee..71df863be 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/text/escape/XmlEscape.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/text/escape/XmlEscape.java @@ -34,6 +34,9 @@ import org.dromara.hutool.core.text.replacer.ReplacerChain; public class XmlEscape extends ReplacerChain { private static final long serialVersionUID = 1L; + /** + * XML转义字符 + */ protected static final String[][] BASIC_ESCAPE = { // // {"'", "'"}, // " - single-quote {"\"", """}, // " - double-quote diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/text/escape/XmlUnescape.java b/hutool-core/src/main/java/org/dromara/hutool/core/text/escape/XmlUnescape.java index 03975f76d..9838692bf 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/text/escape/XmlUnescape.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/text/escape/XmlUnescape.java @@ -24,8 +24,13 @@ import org.dromara.hutool.core.text.replacer.ReplacerChain; public class XmlUnescape extends ReplacerChain { private static final long serialVersionUID = 1L; + /** + * 基础反转义符 + */ protected static final String[][] BASIC_UNESCAPE = InternalEscapeUtil.invert(XmlEscape.BASIC_ESCAPE); - // issue#1118 + /** + * issue#1118,新增'反转义 + */ protected static final String[][] OTHER_UNESCAPE = new String[][]{new String[]{"'", "'"}}; /** diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/text/finder/TextFinder.java b/hutool-core/src/main/java/org/dromara/hutool/core/text/finder/TextFinder.java index 7e801a395..f5b7b3ddf 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/text/finder/TextFinder.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/text/finder/TextFinder.java @@ -25,8 +25,17 @@ import java.io.Serializable; public abstract class TextFinder implements Finder, Serializable { private static final long serialVersionUID = 1L; + /** + * 文本 + */ protected CharSequence text; + /** + * 结束位置 + */ protected int endIndex = -1; + /** + * 是否反向查找 + */ protected boolean negative; /** diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/StrTemplate.java b/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/StrTemplate.java index aefb1537f..4e79919ff 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/StrTemplate.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/StrTemplate.java @@ -151,6 +151,15 @@ public abstract class StrTemplate { protected int fixedTextTotalLength; // endregion + /** + * 构造 + * + * @param template 字符串模板 + * @param escape 转义符 + * @param defaultValue 默认值 + * @param defaultValueHandler 默认值处理器 + * @param features 策略值 + */ protected StrTemplate(final String template, final char escape, final String defaultValue, final UnaryOperator defaultValueHandler, final int features) { Assert.notNull(template, "String template cannot be null"); @@ -718,6 +727,11 @@ public abstract class StrTemplate { */ protected int features; + /** + * 构造 + * + * @param template 字符串模板 + */ protected AbstractBuilder(final String template) { this.template = Objects.requireNonNull(template); // 策略值 初始为 全局默认策略 diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/segment/AbstractPlaceholderSegment.java b/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/segment/AbstractPlaceholderSegment.java index ce3c9c2ef..5adbcaeef 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/segment/AbstractPlaceholderSegment.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/segment/AbstractPlaceholderSegment.java @@ -21,11 +21,15 @@ package org.dromara.hutool.core.text.placeholder.segment; */ public abstract class AbstractPlaceholderSegment implements StrTemplateSegment { /** - * 占位符变量 - *

例如:{@literal "???"->"???", "{}"->"{}", "{name}"->"name"}

+ * 占位符变量,例如:{@literal "???"->"???", "{}"->"{}", "{name}"->"name"} */ private final String placeholder; + /** + * 构造 + * + * @param placeholder 占位符变量,例如:{@literal "???"->"???", "{}"->"{}", "{name}"->"name"} + */ protected AbstractPlaceholderSegment(final String placeholder) { this.placeholder = placeholder; } diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/segment/IndexedPlaceholderSegment.java b/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/segment/IndexedPlaceholderSegment.java index f92d45acc..2421507cf 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/segment/IndexedPlaceholderSegment.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/segment/IndexedPlaceholderSegment.java @@ -20,17 +20,23 @@ package org.dromara.hutool.core.text.placeholder.segment; * @since 6.0.0 */ public class IndexedPlaceholderSegment extends NamedPlaceholderSegment { - /** - * 下标值 - */ - private final int index; + /** + * 下标值 + */ + private final int index; - public IndexedPlaceholderSegment(final String idxStr, final String wholePlaceholder) { - super(idxStr, wholePlaceholder); - this.index = Integer.parseInt(idxStr); - } + /** + * 构造 + * + * @param idxStr 索引字符串变量 + * @param wholePlaceholder 占位符完整文本 + */ + public IndexedPlaceholderSegment(final String idxStr, final String wholePlaceholder) { + super(idxStr, wholePlaceholder); + this.index = Integer.parseInt(idxStr); + } - public int getIndex() { - return index; - } + public int getIndex() { + return index; + } } diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/segment/LiteralSegment.java b/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/segment/LiteralSegment.java index 0ac36dcee..2f049bdfa 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/segment/LiteralSegment.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/segment/LiteralSegment.java @@ -19,18 +19,23 @@ package org.dromara.hutool.core.text.placeholder.segment; * @since 6.0.0 */ public class LiteralSegment implements StrTemplateSegment { - /** - * 模板中固定的一段文本 - */ - private final String text; + /** + * 模板中固定的一段文本 + */ + private final String text; - public LiteralSegment(final String text) { - this.text = text; - } + /** + * 构造 + * + * @param text 文本 + */ + public LiteralSegment(final String text) { + this.text = text; + } - @Override - public String getText() { - return text; - } + @Override + public String getText() { + return text; + } } diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/segment/NamedPlaceholderSegment.java b/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/segment/NamedPlaceholderSegment.java index 031f08cc0..63d9542eb 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/segment/NamedPlaceholderSegment.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/segment/NamedPlaceholderSegment.java @@ -20,20 +20,25 @@ package org.dromara.hutool.core.text.placeholder.segment; * @since 6.0.0 */ public class NamedPlaceholderSegment extends AbstractPlaceholderSegment { - /** - * 占位符完整文本 - *

例如:{@literal "{name}"->"{name}"}

- */ - private final String wholePlaceholder; + /** + * 占位符完整文本 + *

例如:{@literal "{name}"->"{name}"}

+ */ + private final String wholePlaceholder; - public NamedPlaceholderSegment(final String name, final String wholePlaceholder) { - super(name); - this.wholePlaceholder = wholePlaceholder; - } + /** + * 构造 + * @param name 占位符变量 + * @param wholePlaceholder 占位符完整文本 + */ + public NamedPlaceholderSegment(final String name, final String wholePlaceholder) { + super(name); + this.wholePlaceholder = wholePlaceholder; + } - @Override - public String getText() { - return wholePlaceholder; - } + @Override + public String getText() { + return wholePlaceholder; + } } diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/segment/SinglePlaceholderSegment.java b/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/segment/SinglePlaceholderSegment.java index e66de6ad8..8adef7d7e 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/segment/SinglePlaceholderSegment.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/segment/SinglePlaceholderSegment.java @@ -21,11 +21,17 @@ package org.dromara.hutool.core.text.placeholder.segment; */ public class SinglePlaceholderSegment extends AbstractPlaceholderSegment { - private SinglePlaceholderSegment(final String placeholder) { - super(placeholder); - } + private SinglePlaceholderSegment(final String placeholder) { + super(placeholder); + } - public static SinglePlaceholderSegment newInstance(final String placeholder) { - return new SinglePlaceholderSegment(placeholder); - } + /** + * 创建SinglePlaceholderSegment + * + * @param placeholder 占位符 + * @return SinglePlaceholderSegment + */ + public static SinglePlaceholderSegment of(final String placeholder) { + return new SinglePlaceholderSegment(placeholder); + } } diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/segment/StrTemplateSegment.java b/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/segment/StrTemplateSegment.java index e9865aea8..36ecc7ce3 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/segment/StrTemplateSegment.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/segment/StrTemplateSegment.java @@ -19,11 +19,10 @@ package org.dromara.hutool.core.text.placeholder.segment; * @since 6.0.0 */ public interface StrTemplateSegment { - /** - * 获取文本值 - * - * @return 文本值,对于固定文本Segment,返回文本值;对于单占位符Segment,返回占位符;对于有前后缀的占位符Segment,返回占位符完整文本,例如: "{name}" - */ - String getText(); - + /** + * 获取文本值 + * + * @return 文本值,对于固定文本Segment,返回文本值;对于单占位符Segment,返回占位符;对于有前后缀的占位符Segment,返回占位符完整文本,例如: "{name}" + */ + String getText(); } diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/template/NamedPlaceholderStrTemplate.java b/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/template/NamedPlaceholderStrTemplate.java index b59fad49f..672b71701 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/template/NamedPlaceholderStrTemplate.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/template/NamedPlaceholderStrTemplate.java @@ -582,6 +582,10 @@ public class NamedPlaceholderStrTemplate extends StrTemplate { */ protected String suffix; + /** + * 构造 + * @param template 模板 + */ protected Builder(final String template) { super(template); } diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/template/SinglePlaceholderStrTemplate.java b/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/template/SinglePlaceholderStrTemplate.java index bb5b11f89..e4d11f4ce 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/template/SinglePlaceholderStrTemplate.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/text/placeholder/template/SinglePlaceholderStrTemplate.java @@ -66,7 +66,7 @@ public class SinglePlaceholderStrTemplate extends StrTemplate { // 上一个解析的segment是否是固定文本,如果是,则需要和当前新的文本部分合并 boolean lastIsLiteralSegment = false; // 复用的占位符变量 - final SinglePlaceholderSegment singlePlaceholderSegment = SinglePlaceholderSegment.newInstance(placeholder); + final SinglePlaceholderSegment singlePlaceholderSegment = SinglePlaceholderSegment.of(placeholder); List segments = null; while (true) { delimIndex = template.indexOf(placeholder, handledPosition); @@ -200,6 +200,11 @@ public class SinglePlaceholderStrTemplate extends StrTemplate { */ protected String placeholder; + /** + * 构造 + * + * @param template 字符串模板 + */ protected Builder(final String template) { super(template); } diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/thread/ThreadException.java b/hutool-core/src/main/java/org/dromara/hutool/core/thread/ThreadException.java index 6813b5ca2..45ec39eaf 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/thread/ThreadException.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/thread/ThreadException.java @@ -12,39 +12,75 @@ package org.dromara.hutool.core.thread; -import org.dromara.hutool.core.exception.ExceptionUtil; -import org.dromara.hutool.core.text.StrUtil; +import org.dromara.hutool.core.exception.HutoolException; /** - * 工具类异常 + * 线程异常 * * @author looly * @since 5.7.17 */ -public class ThreadException extends RuntimeException { +public class ThreadException extends HutoolException { private static final long serialVersionUID = 5253124428623713216L; + /** + * 构造 + * + * @param e 异常 + */ public ThreadException(final Throwable e) { - super(ExceptionUtil.getMessage(e), e); + super(e); } + /** + * 构造 + * + * @param message 消息 + */ public ThreadException(final String message) { super(message); } + /** + * 构造 + * + * @param messageTemplate 消息模板 + * @param params 参数 + */ public ThreadException(final String messageTemplate, final Object... params) { - super(StrUtil.format(messageTemplate, params)); + super(messageTemplate, params); } - public ThreadException(final String message, final Throwable throwable) { - super(message, throwable); + /** + * 构造 + * + * @param message 消息 + * @param cause 被包装的子异常 + */ + public ThreadException(final String message, final Throwable cause) { + super(message, cause); } - public ThreadException(final String message, final Throwable throwable, final boolean enableSuppression, final boolean writableStackTrace) { - super(message, throwable, enableSuppression, writableStackTrace); + /** + * 构造 + * + * @param message 消息 + * @param cause 被包装的子异常 + * @param enableSuppression 是否启用抑制 + * @param writableStackTrace 堆栈跟踪是否应该是可写的 + */ + public ThreadException(final String message, final Throwable cause, final boolean enableSuppression, final boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); } - public ThreadException(final Throwable throwable, final String messageTemplate, final Object... params) { - super(StrUtil.format(messageTemplate, params), throwable); + /** + * 构造 + * + * @param cause 被包装的子异常 + * @param messageTemplate 消息模板 + * @param params 参数 + */ + public ThreadException(final Throwable cause, final String messageTemplate, final Object... params) { + super(cause, messageTemplate, params); } } diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/thread/lock/NoLock.java b/hutool-core/src/main/java/org/dromara/hutool/core/thread/lock/NoLock.java index c7f0ce141..fb7f01247 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/thread/lock/NoLock.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/thread/lock/NoLock.java @@ -24,6 +24,9 @@ import java.util.concurrent.locks.Lock; */ public class NoLock implements Lock{ + /** + * 单例 + */ public static NoLock INSTANCE = new NoLock(); @Override diff --git a/pom.xml b/pom.xml index 6b5faec7c..0771fa2e7 100755 --- a/pom.xml +++ b/pom.xml @@ -57,12 +57,12 @@ - + org.jetbrains.kotlin kotlin-reflect ${kotlin-version} - provided + test @@ -100,6 +100,10 @@ VampireAchao VampireAchao@dromara.org + + CherryRum + yulin.1996@foxmail.com + Emptypoint 1215582715@qq.com @@ -116,10 +120,6 @@ Dazer007 dazer007@163.com - - CherryRum - yulin.1996@foxmail.com - Aihuahua aihuahua522@qq.com @@ -169,8 +169,10 @@ maven-compiler-plugin 3.13.0 + true ${compile.version} ${compile.version} + -Xlint:unchecked @@ -214,46 +216,6 @@ - - - - apiNote - a - API Note: - - - implSpec - a - Implementation Requirements: - - - implNote - a - Implementation Note: - - - param - - - return - - - throws - - - since - - - version - - - serialData - - - see - - - @@ -277,6 +239,29 @@ + + + org.moditect + moditect-maven-plugin + 1.2.2.Final + + + add-module-infos + package + + add-module-info + + + 9 + + + ${Automatic-Module-Name} + + + + + +