fix commenty

This commit is contained in:
Looly
2025-06-25 18:08:08 +08:00
parent 6fda8f0244
commit 2b7adbef08
19 changed files with 149 additions and 46 deletions

View File

@@ -16,6 +16,7 @@
package cn.hutool.v7.core.cache.impl; package cn.hutool.v7.core.cache.impl;
import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Iterator; import java.util.Iterator;
@@ -26,8 +27,12 @@ import java.util.Iterator;
* @param <V> 迭代对象类型 * @param <V> 迭代对象类型
*/ */
public class CacheValuesIterator<V> implements Iterator<V>, Serializable { public class CacheValuesIterator<V> implements Iterator<V>, Serializable {
@Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* 缓存对象迭代器
*/
private final CacheObjIterator<?, V> cacheObjIter; private final CacheObjIterator<?, V> cacheObjIter;
/** /**

View File

@@ -24,10 +24,7 @@ import cn.hutool.v7.core.text.StrUtil;
import cn.hutool.v7.core.array.ArrayUtil; import cn.hutool.v7.core.array.ArrayUtil;
import cn.hutool.v7.core.text.CharUtil; import cn.hutool.v7.core.text.CharUtil;
import java.io.ByteArrayOutputStream; import java.io.*;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Serializable;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.util.BitSet; import java.util.BitSet;
@@ -52,6 +49,7 @@ import java.util.BitSet;
* @since 5.7.16 * @since 5.7.16
*/ */
public class PercentCodec implements Encoder<byte[], byte[]>, Serializable { public class PercentCodec implements Encoder<byte[], byte[]>, Serializable {
@Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private static final char DEFAULT_SIZE = 256; private static final char DEFAULT_SIZE = 256;
@@ -185,6 +183,7 @@ public class PercentCodec implements Encoder<byte[], byte[]>, Serializable {
* @since 6.0.0 * @since 6.0.0
*/ */
public static class Builder implements cn.hutool.v7.core.lang.builder.Builder<PercentCodec> { public static class Builder implements cn.hutool.v7.core.lang.builder.Builder<PercentCodec> {
@Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
@@ -213,8 +212,15 @@ public class PercentCodec implements Encoder<byte[], byte[]>, Serializable {
return builder; return builder;
} }
/**
* 编码器
*/
private final PercentCodec codec; private final PercentCodec codec;
/**
* 构造
* @param codec 编码器
*/
private Builder(final PercentCodec codec) { private Builder(final PercentCodec codec) {
this.codec = codec; this.codec = codec;
} }

View File

@@ -45,6 +45,9 @@ public class Base16Codec implements Encoder<byte[], char[]>, Decoder<CharSequenc
*/ */
public static final Base16Codec CODEC_UPPER = new Base16Codec(false); public static final Base16Codec CODEC_UPPER = new Base16Codec(false);
/**
* 创建Base16编码器
*/
private final char[] alphabets; private final char[] alphabets;
/** /**

View File

@@ -19,6 +19,7 @@ package cn.hutool.v7.core.collection.iter;
import cn.hutool.v7.core.collection.ListUtil; import cn.hutool.v7.core.collection.ListUtil;
import cn.hutool.v7.core.util.ObjUtil; import cn.hutool.v7.core.util.ObjUtil;
import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Collections; import java.util.Collections;
import java.util.Iterator; import java.util.Iterator;
@@ -41,8 +42,12 @@ import java.util.List;
* @since 3.0.7 * @since 3.0.7
*/ */
public class CopiedIter<E> implements IterableIter<E>, Serializable { public class CopiedIter<E> implements IterableIter<E>, Serializable {
@Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* 迭代器
*/
private final Iterator<E> listIterator; private final Iterator<E> listIterator;
/** /**

View File

@@ -16,6 +16,7 @@
package cn.hutool.v7.core.collection.iter; package cn.hutool.v7.core.collection.iter;
import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.Iterator; import java.util.Iterator;
@@ -28,8 +29,12 @@ import java.util.Iterator;
* @since 4.1.1 * @since 4.1.1
*/ */
public class EnumerationIter<E> implements IterableIter<E>, Serializable{ public class EnumerationIter<E> implements IterableIter<E>, Serializable{
@Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* {@link Enumeration}
*/
private final Enumeration<E> e; private final Enumeration<E> e;
/** /**

View File

@@ -16,6 +16,7 @@
package cn.hutool.v7.core.collection.iter; package cn.hutool.v7.core.collection.iter;
import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.Iterator; import java.util.Iterator;
@@ -28,12 +29,14 @@ import java.util.Iterator;
* @since 3.0.8 * @since 3.0.8
*/ */
public class IteratorEnumeration<E> implements Enumeration<E>, Serializable{ public class IteratorEnumeration<E> implements Enumeration<E>, Serializable{
@Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* {@link Iterator}
*/
private final Iterator<E> iterator; private final Iterator<E> iterator;
/** /**
* 构造 * 构造
* @param iterator {@link Iterator}对象 * @param iterator {@link Iterator}对象

View File

@@ -20,12 +20,7 @@ import cn.hutool.v7.core.io.IORuntimeException;
import cn.hutool.v7.core.io.IoUtil; import cn.hutool.v7.core.io.IoUtil;
import cn.hutool.v7.core.lang.Assert; import cn.hutool.v7.core.lang.Assert;
import java.io.BufferedReader; import java.io.*;
import java.io.Closeable;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import java.io.Serializable;
import java.nio.charset.Charset; import java.nio.charset.Charset;
/** /**
@@ -51,8 +46,12 @@ import java.nio.charset.Charset;
* @since 4.1.1 * @since 4.1.1
*/ */
public class LineIter extends ComputeIter<String> implements IterableIter<String>, Closeable, Serializable { public class LineIter extends ComputeIter<String> implements IterableIter<String>, Closeable, Serializable {
@Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* {@link BufferedReader}
*/
private final BufferedReader bufferedReader; private final BufferedReader bufferedReader;
/** /**

View File

@@ -18,6 +18,7 @@ package cn.hutool.v7.core.collection.queue;
import cn.hutool.v7.core.collection.BoundedCollection; import cn.hutool.v7.core.collection.BoundedCollection;
import java.io.Serial;
import java.util.*; import java.util.*;
/** /**
@@ -28,10 +29,16 @@ import java.util.*;
* @param <E> 成员类型 * @param <E> 成员类型
*/ */
public class BoundedPriorityQueue<E> extends PriorityQueue<E> implements BoundedCollection<E> { public class BoundedPriorityQueue<E> extends PriorityQueue<E> implements BoundedCollection<E> {
@Serial
private static final long serialVersionUID = 3794348988671694820L; private static final long serialVersionUID = 3794348988671694820L;
//容量 /**
* 容量
*/
private final int capacity; private final int capacity;
/**
* 比较器
*/
private final Comparator<? super E> comparator; private final Comparator<? super E> comparator;
/** /**

View File

@@ -17,13 +17,9 @@
package cn.hutool.v7.core.collection.set; package cn.hutool.v7.core.collection.set;
import java.io.IOException; import java.io.IOException;
import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.AbstractSet; import java.util.*;
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.Spliterator;
import java.util.function.Consumer; import java.util.function.Consumer;
import java.util.function.Predicate; import java.util.function.Predicate;
import java.util.stream.Stream; import java.util.stream.Stream;
@@ -35,10 +31,17 @@ import java.util.stream.Stream;
* @author guava * @author guava
*/ */
public class SetFromMap<E> extends AbstractSet<E> implements Serializable { public class SetFromMap<E> extends AbstractSet<E> implements Serializable {
@Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private final Map<E, Boolean> m; // The backing map /**
private transient Set<E> s; // Its keySet * The backing map
*/
private final Map<E, Boolean> m;
/**
* Its keySet
*/
private transient Set<E> s;
/** /**
* 构造 * 构造
@@ -152,6 +155,14 @@ public class SetFromMap<E> extends AbstractSet<E> implements Serializable {
return s.parallelStream(); return s.parallelStream();
} }
/**
* 读取对象
*
* @param stream 输入流
* @throws IOException IO异常
* @throws ClassNotFoundException 类无法找到
*/
@Serial
private void readObject(final java.io.ObjectInputStream stream) throws IOException, ClassNotFoundException { private void readObject(final java.io.ObjectInputStream stream) throws IOException, ClassNotFoundException {
stream.defaultReadObject(); stream.defaultReadObject();
s = m.keySet(); s = m.keySet();

View File

@@ -19,6 +19,7 @@ package cn.hutool.v7.core.collection.set;
import cn.hutool.v7.core.map.MapBuilder; import cn.hutool.v7.core.map.MapBuilder;
import cn.hutool.v7.core.util.ObjUtil; import cn.hutool.v7.core.util.ObjUtil;
import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.AbstractSet; import java.util.AbstractSet;
import java.util.Collection; import java.util.Collection;
@@ -42,9 +43,16 @@ import java.util.function.Function;
* @since 5.7.23 * @since 5.7.23
*/ */
public class UniqueKeySet<K, V> extends AbstractSet<V> implements Serializable { public class UniqueKeySet<K, V> extends AbstractSet<V> implements Serializable {
@Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* map
*/
private Map<K, V> map; private Map<K, V> map;
/**
* 唯一键生成规则函数,用于生成对象对应的唯一键
*/
private final Function<V, K> uniqueGenerator; private final Function<V, K> uniqueGenerator;
//region 构造 //region 构造

View File

@@ -23,6 +23,7 @@ import cn.hutool.v7.core.reflect.TypeReference;
import cn.hutool.v7.core.reflect.TypeUtil; import cn.hutool.v7.core.reflect.TypeUtil;
import cn.hutool.v7.core.util.ObjUtil; import cn.hutool.v7.core.util.ObjUtil;
import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.Optional; import java.util.Optional;
@@ -38,6 +39,7 @@ import java.util.Optional;
* @author Looly * @author Looly
*/ */
public class CompositeConverter implements Converter, Serializable { public class CompositeConverter implements Converter, Serializable {
@Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
@@ -64,7 +66,13 @@ public class CompositeConverter implements Converter, Serializable {
return SingletonHolder.INSTANCE; return SingletonHolder.INSTANCE;
} }
/**
* 注册转换器
*/
private RegisterConverter registerConverter; private RegisterConverter registerConverter;
/**
* 特殊转换器
*/
private SpecialConverter specialConverter; private SpecialConverter specialConverter;
/** /**

View File

@@ -20,6 +20,7 @@ import cn.hutool.v7.core.convert.AbstractConverter;
import cn.hutool.v7.core.convert.Converter; import cn.hutool.v7.core.convert.Converter;
import cn.hutool.v7.core.reflect.TypeUtil; import cn.hutool.v7.core.reflect.TypeUtil;
import java.io.Serial;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
@@ -30,8 +31,12 @@ import java.util.concurrent.atomic.AtomicReference;
* @since 3.0.8 * @since 3.0.8
*/ */
public class AtomicReferenceConverter extends AbstractConverter { public class AtomicReferenceConverter extends AbstractConverter {
@Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* 转换器
*/
private final Converter converter; private final Converter converter;
/** /**

View File

@@ -54,6 +54,9 @@ public class BeanConverter implements Converter, Serializable {
*/ */
public static final BeanConverter INSTANCE = new BeanConverter(); public static final BeanConverter INSTANCE = new BeanConverter();
/**
* 默认转换选项
*/
private final CopyOptions copyOptions; private final CopyOptions copyOptions;
/** /**

View File

@@ -38,6 +38,9 @@ public class ClassConverter extends AbstractConverter implements MatcherConverte
*/ */
public static final ClassConverter INSTANCE = new ClassConverter(); public static final ClassConverter INSTANCE = new ClassConverter();
/**
* 是否初始化这个类执行static块
*/
private final boolean isInitialized; private final boolean isInitialized;
/** /**

View File

@@ -22,6 +22,7 @@ import cn.hutool.v7.core.lang.Assert;
import cn.hutool.v7.core.reflect.TypeUtil; import cn.hutool.v7.core.reflect.TypeUtil;
import cn.hutool.v7.core.text.StrUtil; import cn.hutool.v7.core.text.StrUtil;
import java.io.Serial;
import java.lang.ref.Reference; import java.lang.ref.Reference;
import java.lang.ref.SoftReference; import java.lang.ref.SoftReference;
import java.lang.ref.WeakReference; import java.lang.ref.WeakReference;
@@ -35,8 +36,12 @@ import java.lang.reflect.Type;
*/ */
@SuppressWarnings("rawtypes") @SuppressWarnings("rawtypes")
public class ReferenceConverter extends AbstractConverter { public class ReferenceConverter extends AbstractConverter {
@Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* 构造
*/
private final Converter rootConverter; private final Converter rootConverter;
/** /**
@@ -55,16 +60,16 @@ public class ReferenceConverter extends AbstractConverter {
//尝试将值转换为Reference泛型的类型 //尝试将值转换为Reference泛型的类型
Object targetValue = null; Object targetValue = null;
final Type paramType = TypeUtil.getTypeArgument(targetClass); final Type paramType = TypeUtil.getTypeArgument(targetClass);
if(!TypeUtil.isUnknown(paramType)){ if (!TypeUtil.isUnknown(paramType)) {
targetValue = rootConverter.convert(paramType, value); targetValue = rootConverter.convert(paramType, value);
} }
if(null == targetValue){ if (null == targetValue) {
targetValue = value; targetValue = value;
} }
if(targetClass == WeakReference.class){ if (targetClass == WeakReference.class) {
return new WeakReference(targetValue); return new WeakReference(targetValue);
}else if(targetClass == SoftReference.class){ } else if (targetClass == SoftReference.class) {
return new SoftReference(targetValue); return new SoftReference(targetValue);
} }

View File

@@ -22,6 +22,7 @@ import cn.hutool.v7.core.convert.impl.stringer.ClobStringer;
import cn.hutool.v7.core.map.MapUtil; import cn.hutool.v7.core.map.MapUtil;
import cn.hutool.v7.core.xml.XmlUtil; import cn.hutool.v7.core.xml.XmlUtil;
import java.io.Serial;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@@ -34,8 +35,12 @@ import java.util.function.Function;
* @author Looly * @author Looly
*/ */
public class StringConverter extends AbstractConverter { public class StringConverter extends AbstractConverter {
@Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* 创建StringConverter
*/
private Map<Class<?>, Function<Object, String>> stringer; private Map<Class<?>, Function<Object, String>> stringer;
/** /**

View File

@@ -25,6 +25,7 @@ import cn.hutool.v7.core.text.StrUtil;
import javax.xml.datatype.DatatypeConfigurationException; import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar; import javax.xml.datatype.XMLGregorianCalendar;
import java.io.Serial;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.GregorianCalendar; import java.util.GregorianCalendar;
@@ -33,19 +34,24 @@ import java.util.GregorianCalendar;
* 日期转换器 * 日期转换器
* *
* @author Looly * @author Looly
*
*/ */
public class XMLGregorianCalendarConverter extends AbstractConverter { public class XMLGregorianCalendarConverter extends AbstractConverter {
@Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** 日期格式化 */ /**
* 日期格式化
*/
private String format; private String format;
/**
* {@link DatatypeFactory}
*/
private final DatatypeFactory datatypeFactory; private final DatatypeFactory datatypeFactory;
/** /**
* 构造 * 构造
*/ */
public XMLGregorianCalendarConverter(){ public XMLGregorianCalendarConverter() {
try { try {
datatypeFactory = DatatypeFactory.newInstance(); datatypeFactory = DatatypeFactory.newInstance();
} catch (final DatatypeConfigurationException e) { } catch (final DatatypeConfigurationException e) {
@@ -73,7 +79,7 @@ public class XMLGregorianCalendarConverter extends AbstractConverter {
@Override @Override
protected XMLGregorianCalendar convertInternal(final Class<?> targetClass, final Object value) { protected XMLGregorianCalendar convertInternal(final Class<?> targetClass, final Object value) {
if(value instanceof GregorianCalendar){ if (value instanceof GregorianCalendar) {
return datatypeFactory.newXMLGregorianCalendar((GregorianCalendar) value); return datatypeFactory.newXMLGregorianCalendar((GregorianCalendar) value);
} }
@@ -81,18 +87,18 @@ public class XMLGregorianCalendarConverter extends AbstractConverter {
// Handle Date // Handle Date
if (value instanceof Date) { if (value instanceof Date) {
gregorianCalendar.setTime((Date) value); gregorianCalendar.setTime((Date) value);
} else if(value instanceof Calendar){ } else if (value instanceof Calendar) {
final Calendar calendar = (Calendar) value; final Calendar calendar = (Calendar) value;
gregorianCalendar.setTimeZone(calendar.getTimeZone()); gregorianCalendar.setTimeZone(calendar.getTimeZone());
gregorianCalendar.setFirstDayOfWeek(calendar.getFirstDayOfWeek()); gregorianCalendar.setFirstDayOfWeek(calendar.getFirstDayOfWeek());
gregorianCalendar.setLenient(calendar.isLenient()); gregorianCalendar.setLenient(calendar.isLenient());
gregorianCalendar.setTimeInMillis(calendar.getTimeInMillis()); gregorianCalendar.setTimeInMillis(calendar.getTimeInMillis());
}else if (value instanceof Long) { } else if (value instanceof Long) {
gregorianCalendar.setTimeInMillis((Long) value); gregorianCalendar.setTimeInMillis((Long) value);
} else{ } else {
final String valueStr = convertToStr(value); final String valueStr = convertToStr(value);
final Date date = StrUtil.isBlank(format) ? DateUtil.parse(valueStr) : DateUtil.parse(valueStr, format); final Date date = StrUtil.isBlank(format) ? DateUtil.parse(valueStr) : DateUtil.parse(valueStr, format);
if(null == date){ if (null == date) {
throw new ConvertException("Unsupported date value: " + value); throw new ConvertException("Unsupported date value: " + value);
} }
gregorianCalendar.setTime(date); gregorianCalendar.setTime(date);

View File

@@ -49,7 +49,9 @@ public class MultiStrFinder {
* 根节点 * 根节点
*/ */
protected final Node root; protected final Node root;
// 全部节点数量 /**
* 全部节点数量
*/
int nodeSize; int nodeSize;
/** /**
@@ -188,15 +190,18 @@ public class MultiStrFinder {
* AC 自动机节点 * AC 自动机节点
*/ */
protected static class Node { protected static class Node {
// 是否是字符串 尾节点 /**
* 是否是字符串 尾节点
*/
public boolean isEnd = false; public boolean isEnd = false;
/**
// 如果当前节点是尾节点 那么表示 匹配到的字符串 其他情况下 null * 如果当前节点是尾节点 那么表示 匹配到的字符串 其他情况下 null
*/
public String tagetString; public String tagetString;
/**
//失效节点 * 失效节点
*/
public Node fail; public Node fail;
/** /**
* 直接路由表 * 直接路由表
* 减少挑 fail过程 使用数组 + charIndex 希望库减少 hash复杂度和内存空间 * 减少挑 fail过程 使用数组 + charIndex 希望库减少 hash复杂度和内存空间
@@ -204,16 +209,22 @@ public class MultiStrFinder {
* directRouter 大小为 全部字符数量 * directRouter 大小为 全部字符数量
*/ */
public Node[] directRouter; public Node[] directRouter;
/**
// 节点编号 root 为 0 * 节点编号 root 为 0
*/
public int nodeIndex; public int nodeIndex;
/**
// 值 * 值
*/
public char value; public char value;
/**
// fail指针来源 * fail指针来源
*/
public List<Node> failPre = new ArrayList<>(); public List<Node> failPre = new ArrayList<>();
/**
* 构造
*/
public Node() { public Node() {
} }

View File

@@ -70,6 +70,11 @@ public class HighMultiReplacerV2 extends StrReplacer {
*/ */
protected final Map<String,String> replaceMap; protected final Map<String,String> replaceMap;
/**
* 构造
*
* @param replaceMap 替换的Map
*/
public AhoCorasickAutomaton(final Map<String,String> replaceMap){ public AhoCorasickAutomaton(final Map<String,String> replaceMap){
super(replaceMap.keySet()); super(replaceMap.keySet());
this.replaceMap = replaceMap; this.replaceMap = replaceMap;