diff --git a/hutool-all/pom.xml b/hutool-all/pom.xml
index 5f87a6a2a..7169d0704 100755
--- a/hutool-all/pom.xml
+++ b/hutool-all/pom.xml
@@ -17,69 +17,6 @@
Hutool是一个优雅而小巧的Java工具类库
https://github.com/looly/hutool
-
-
- cn.hutool
- hutool-core
- ${project.parent.version}
-
-
- cn.hutool
- hutool-crypto
- ${project.parent.version}
-
-
- cn.hutool
- hutool-db
- ${project.parent.version}
-
-
- cn.hutool
- hutool-extra
- ${project.parent.version}
-
-
- cn.hutool
- hutool-http
- ${project.parent.version}
-
-
- cn.hutool
- hutool-log
- ${project.parent.version}
-
-
- cn.hutool
- hutool-setting
- ${project.parent.version}
-
-
- cn.hutool
- hutool-cron
- ${project.parent.version}
-
-
- cn.hutool
- hutool-json
- ${project.parent.version}
-
-
- cn.hutool
- hutool-poi
- ${project.parent.version}
-
-
- cn.hutool
- hutool-socket
- ${project.parent.version}
-
-
- cn.hutool
- hutool-swing
- ${project.parent.version}
-
-
-
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/HexUtil.java b/hutool-core/src/main/java/cn/hutool/core/codec/HexUtil.java
index a07006291..4562f8d74 100755
--- a/hutool-core/src/main/java/cn/hutool/core/codec/HexUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/HexUtil.java
@@ -1,6 +1,6 @@
package cn.hutool.core.codec;
-import cn.hutool.core.codec.BaseN.Base16Codec;
+import cn.hutool.core.codec.binary.Base16Codec;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.util.CharUtil;
import cn.hutool.core.util.CharsetUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/PercentCodec.java b/hutool-core/src/main/java/cn/hutool/core/codec/PercentCodec.java
index 1a1e810aa..52b522892 100755
--- a/hutool-core/src/main/java/cn/hutool/core/codec/PercentCodec.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/PercentCodec.java
@@ -1,6 +1,6 @@
package cn.hutool.core.codec;
-import cn.hutool.core.codec.BaseN.Base16Codec;
+import cn.hutool.core.codec.binary.Base16Codec;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.text.CharPool;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base16Codec.java b/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base16Codec.java
similarity index 98%
rename from hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base16Codec.java
rename to hutool-core/src/main/java/cn/hutool/core/codec/binary/Base16Codec.java
index 8d05d17c9..715a6a5cb 100644
--- a/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base16Codec.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base16Codec.java
@@ -1,4 +1,4 @@
-package cn.hutool.core.codec.BaseN;
+package cn.hutool.core.codec.binary;
import cn.hutool.core.codec.Decoder;
import cn.hutool.core.codec.Encoder;
@@ -81,7 +81,7 @@ public class Base16Codec implements Encoder, Decoder
- * '你' =》'\u4f60'
+ * '你' =》'\u4f60'
*
*
* @param ch char值
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base32.java b/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base32.java
similarity index 99%
rename from hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base32.java
rename to hutool-core/src/main/java/cn/hutool/core/codec/binary/Base32.java
index ecf95cda1..19bf32f0f 100644
--- a/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base32.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base32.java
@@ -1,4 +1,4 @@
-package cn.hutool.core.codec.BaseN;
+package cn.hutool.core.codec.binary;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base32Codec.java b/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base32Codec.java
old mode 100755
new mode 100644
similarity index 98%
rename from hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base32Codec.java
rename to hutool-core/src/main/java/cn/hutool/core/codec/binary/Base32Codec.java
index 05c5d70db..ea39c76d1
--- a/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base32Codec.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base32Codec.java
@@ -1,4 +1,4 @@
-package cn.hutool.core.codec.BaseN;
+package cn.hutool.core.codec.binary;
import cn.hutool.core.codec.Decoder;
import cn.hutool.core.codec.Encoder;
@@ -21,6 +21,9 @@ import java.util.Arrays;
*/
public class Base32Codec implements Encoder, Decoder {
+ /**
+ * 单例对象
+ */
public static Base32Codec INSTANCE = new Base32Codec();
@Override
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base58.java b/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base58.java
similarity index 99%
rename from hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base58.java
rename to hutool-core/src/main/java/cn/hutool/core/codec/binary/Base58.java
index 3806dce03..4d376f17e 100644
--- a/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base58.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base58.java
@@ -1,4 +1,4 @@
-package cn.hutool.core.codec.BaseN;
+package cn.hutool.core.codec.binary;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.exceptions.ValidateException;
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base58Codec.java b/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base58Codec.java
similarity index 99%
rename from hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base58Codec.java
rename to hutool-core/src/main/java/cn/hutool/core/codec/binary/Base58Codec.java
index 0d0436d37..0fa479d49 100644
--- a/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base58Codec.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base58Codec.java
@@ -1,4 +1,4 @@
-package cn.hutool.core.codec.BaseN;
+package cn.hutool.core.codec.binary;
import cn.hutool.core.codec.Decoder;
import cn.hutool.core.codec.Encoder;
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base62.java b/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base62.java
similarity index 99%
rename from hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base62.java
rename to hutool-core/src/main/java/cn/hutool/core/codec/binary/Base62.java
index ff9fdc21b..f0dc87817 100644
--- a/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base62.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base62.java
@@ -1,4 +1,4 @@
-package cn.hutool.core.codec.BaseN;
+package cn.hutool.core.codec.binary;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IoUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base62Codec.java b/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base62Codec.java
similarity index 99%
rename from hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base62Codec.java
rename to hutool-core/src/main/java/cn/hutool/core/codec/binary/Base62Codec.java
index 9ee3337cb..2e6e933fd 100644
--- a/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base62Codec.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base62Codec.java
@@ -1,4 +1,4 @@
-package cn.hutool.core.codec.BaseN;
+package cn.hutool.core.codec.binary;
import cn.hutool.core.codec.Decoder;
import cn.hutool.core.codec.Encoder;
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base64.java b/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base64.java
old mode 100755
new mode 100644
similarity index 99%
rename from hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base64.java
rename to hutool-core/src/main/java/cn/hutool/core/codec/binary/Base64.java
index 071ffc209..3b47bcb31
--- a/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base64.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base64.java
@@ -1,4 +1,4 @@
-package cn.hutool.core.codec.BaseN;
+package cn.hutool.core.codec.binary;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IoUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base64Decoder.java b/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base64Decoder.java
similarity index 98%
rename from hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base64Decoder.java
rename to hutool-core/src/main/java/cn/hutool/core/codec/binary/Base64Decoder.java
index 013308dd2..cda233a8a 100644
--- a/hutool-core/src/main/java/cn/hutool/core/codec/BaseN/Base64Decoder.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base64Decoder.java
@@ -1,4 +1,4 @@
-package cn.hutool.core.codec.BaseN;
+package cn.hutool.core.codec.binary;
import cn.hutool.core.codec.Decoder;
import cn.hutool.core.lang.mutable.MutableInt;
@@ -13,6 +13,9 @@ import cn.hutool.core.util.ArrayUtil;
*/
public class Base64Decoder implements Decoder {
+ /**
+ * 单例对象
+ */
public static Base64Decoder INSTANCE = new Base64Decoder();
private static final byte PADDING = -2;
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/binary/package-info.java b/hutool-core/src/main/java/cn/hutool/core/codec/binary/package-info.java
new file mode 100644
index 000000000..82c9d3a5f
--- /dev/null
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/binary/package-info.java
@@ -0,0 +1,11 @@
+/**
+ * BaseN编码解码,提供将bytes和baseN的编码转换功能。
+ *
+ * - Base16
+ * - Base32
+ * - Base58
+ * - Base62
+ * - Base64
+ *
+ */
+package cn.hutool.core.codec.binary;
diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/impl/ArrayConverter.java b/hutool-core/src/main/java/cn/hutool/core/convert/impl/ArrayConverter.java
index 78b8a83d0..bc089791b 100644
--- a/hutool-core/src/main/java/cn/hutool/core/convert/impl/ArrayConverter.java
+++ b/hutool-core/src/main/java/cn/hutool/core/convert/impl/ArrayConverter.java
@@ -1,6 +1,6 @@
package cn.hutool.core.convert.impl;
-import cn.hutool.core.codec.BaseN.Base64;
+import cn.hutool.core.codec.binary.Base64;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.convert.AbstractConverter;
import cn.hutool.core.convert.Convert;
diff --git a/hutool-core/src/main/java/cn/hutool/core/date/TemporalAccessorUtil.java b/hutool-core/src/main/java/cn/hutool/core/date/TemporalAccessorUtil.java
index c737af574..51483bf34 100644
--- a/hutool-core/src/main/java/cn/hutool/core/date/TemporalAccessorUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/date/TemporalAccessorUtil.java
@@ -164,8 +164,6 @@ public class TemporalAccessorUtil extends TemporalUtil{
result = ((OffsetTime) temporalAccessor).atDate(LocalDate.now()).toInstant();
} else {
// issue#1891@Github
- // Instant.from不能完成日期转换
- //result = Instant.from(temporalAccessor);
result = toInstant(TimeUtil.of(temporalAccessor));
}
diff --git a/hutool-core/src/main/java/cn/hutool/core/date/format/parser/CSTDateParser.java b/hutool-core/src/main/java/cn/hutool/core/date/format/parser/CSTDateParser.java
index dbe94f8ed..2c13a43b2 100644
--- a/hutool-core/src/main/java/cn/hutool/core/date/format/parser/CSTDateParser.java
+++ b/hutool-core/src/main/java/cn/hutool/core/date/format/parser/CSTDateParser.java
@@ -16,7 +16,10 @@ import cn.hutool.core.date.format.DefaultDateBasic;
* @since 6.0.0
*/
public class CSTDateParser extends DefaultDateBasic implements DateParser {
-
+ private static final long serialVersionUID = 1L;
+ /**
+ * 单例对象
+ */
public static CSTDateParser INSTANCE = new CSTDateParser();
@Override
diff --git a/hutool-core/src/main/java/cn/hutool/core/date/format/parser/NormalDateParser.java b/hutool-core/src/main/java/cn/hutool/core/date/format/parser/NormalDateParser.java
index f090b86ac..99c04ae0a 100644
--- a/hutool-core/src/main/java/cn/hutool/core/date/format/parser/NormalDateParser.java
+++ b/hutool-core/src/main/java/cn/hutool/core/date/format/parser/NormalDateParser.java
@@ -21,7 +21,11 @@ import cn.hutool.core.util.CharUtil;
* @since 6.0.0
*/
public class NormalDateParser extends DefaultDateBasic implements DateParser {
+ private static final long serialVersionUID = 1L;
+ /**
+ * 单例
+ */
public static NormalDateParser INSTANCE = new NormalDateParser();
@Override
diff --git a/hutool-core/src/main/java/cn/hutool/core/date/format/parser/PatternsDateParser.java b/hutool-core/src/main/java/cn/hutool/core/date/format/parser/PatternsDateParser.java
index c4332a60b..13e937069 100644
--- a/hutool-core/src/main/java/cn/hutool/core/date/format/parser/PatternsDateParser.java
+++ b/hutool-core/src/main/java/cn/hutool/core/date/format/parser/PatternsDateParser.java
@@ -16,6 +16,7 @@ import java.util.Locale;
* @since 6.0.0
*/
public class PatternsDateParser extends DefaultDateBasic implements DateParser {
+ private static final long serialVersionUID = 1L;
/**
* 创建 PatternsDateParser
diff --git a/hutool-core/src/main/java/cn/hutool/core/date/format/parser/PureDateParser.java b/hutool-core/src/main/java/cn/hutool/core/date/format/parser/PureDateParser.java
index e5dd0f30e..e7646d59d 100644
--- a/hutool-core/src/main/java/cn/hutool/core/date/format/parser/PureDateParser.java
+++ b/hutool-core/src/main/java/cn/hutool/core/date/format/parser/PureDateParser.java
@@ -18,7 +18,11 @@ import cn.hutool.core.date.format.DefaultDateBasic;
* @since 6.0.0
*/
public class PureDateParser extends DefaultDateBasic implements DateParser {
+ private static final long serialVersionUID = 1L;
+ /**
+ * 单例
+ */
public static PureDateParser INSTANCE = new PureDateParser();
@Override
diff --git a/hutool-core/src/main/java/cn/hutool/core/date/format/parser/TimeParser.java b/hutool-core/src/main/java/cn/hutool/core/date/format/parser/TimeParser.java
index c8aec9a26..6961f02d1 100644
--- a/hutool-core/src/main/java/cn/hutool/core/date/format/parser/TimeParser.java
+++ b/hutool-core/src/main/java/cn/hutool/core/date/format/parser/TimeParser.java
@@ -17,7 +17,11 @@ import cn.hutool.core.text.StrUtil;
* @since 6.0.0
*/
public class TimeParser extends DefaultDateBasic implements DateParser {
+ private static final long serialVersionUID = 1L;
+ /**
+ * 单例
+ */
public static TimeParser INSTANCE = new TimeParser();
@Override
diff --git a/hutool-core/src/main/java/cn/hutool/core/date/format/parser/UTCDateParser.java b/hutool-core/src/main/java/cn/hutool/core/date/format/parser/UTCDateParser.java
index a60cb6a0c..ed295d133 100644
--- a/hutool-core/src/main/java/cn/hutool/core/date/format/parser/UTCDateParser.java
+++ b/hutool-core/src/main/java/cn/hutool/core/date/format/parser/UTCDateParser.java
@@ -109,6 +109,7 @@ public class UTCDateParser extends DefaultDateBasic implements DateParser {
* @param after 毫秒部分的后一个字符
* @return 规范之后的毫秒部分
*/
+ @SuppressWarnings("SameParameterValue")
private static String normalizeMillSeconds(final String dateStr, final CharSequence before, final CharSequence after) {
if (StrUtil.isBlank(after)) {
final String millOrNaco = StrUtil.subPre(StrUtil.subAfter(dateStr, before, true), 3);
diff --git a/hutool-core/src/main/java/cn/hutool/core/exceptions/InvocationTargetRuntimeException.java b/hutool-core/src/main/java/cn/hutool/core/exceptions/InvocationTargetRuntimeException.java
index 0d2486471..cf503e7bd 100644
--- a/hutool-core/src/main/java/cn/hutool/core/exceptions/InvocationTargetRuntimeException.java
+++ b/hutool-core/src/main/java/cn/hutool/core/exceptions/InvocationTargetRuntimeException.java
@@ -6,28 +6,66 @@ package cn.hutool.core.exceptions;
* @author looly
*/
public class InvocationTargetRuntimeException extends UtilException {
+ private static final long serialVersionUID = 1L;
+ /**
+ * 构造
+ *
+ * @param e 异常
+ */
public InvocationTargetRuntimeException(final Throwable e) {
super(e);
}
+ /**
+ * 构造
+ *
+ * @param message 消息
+ */
public InvocationTargetRuntimeException(final String message) {
super(message);
}
+ /**
+ * 构造
+ *
+ * @param messageTemplate 消息模板
+ * @param params 参数
+ */
public InvocationTargetRuntimeException(final String messageTemplate, final Object... params) {
super(messageTemplate, params);
}
- public InvocationTargetRuntimeException(final String message, final Throwable throwable) {
- super(message, throwable);
+ /**
+ * 构造
+ *
+ * @param message 消息
+ * @param cause 被包装的子异常
+ */
+ public InvocationTargetRuntimeException(final String message, final Throwable cause) {
+ super(message, cause);
}
- public InvocationTargetRuntimeException(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 InvocationTargetRuntimeException(final String message, final Throwable cause, final boolean enableSuppression, final boolean writableStackTrace) {
+ super(message, cause, enableSuppression, writableStackTrace);
}
- public InvocationTargetRuntimeException(final Throwable throwable, final String messageTemplate, final Object... params) {
- super(throwable, messageTemplate, params);
+ /**
+ * 构造
+ *
+ * @param cause 被包装的子异常
+ * @param messageTemplate 消息模板
+ * @param params 参数
+ */
+ public InvocationTargetRuntimeException(final Throwable cause, final String messageTemplate, final Object... params) {
+ super(cause, messageTemplate, params);
}
}
diff --git a/hutool-core/src/main/java/cn/hutool/core/exceptions/UtilException.java b/hutool-core/src/main/java/cn/hutool/core/exceptions/UtilException.java
index e8d96c7d1..3d3bff60e 100644
--- a/hutool-core/src/main/java/cn/hutool/core/exceptions/UtilException.java
+++ b/hutool-core/src/main/java/cn/hutool/core/exceptions/UtilException.java
@@ -10,8 +10,8 @@ import cn.hutool.core.text.StrUtil;
public class UtilException extends RuntimeException {
private static final long serialVersionUID = 8247610319171014183L;
- public UtilException(final Throwable e) {
- super(ExceptionUtil.getMessage(e), e);
+ public UtilException(final Throwable cause) {
+ super(ExceptionUtil.getMessage(cause), cause);
}
public UtilException(final String message) {
@@ -22,15 +22,15 @@ public class UtilException extends RuntimeException {
super(StrUtil.format(messageTemplate, params));
}
- public UtilException(final String message, final Throwable throwable) {
- super(message, throwable);
+ public UtilException(final String message, final Throwable cause) {
+ super(message, cause);
}
- public UtilException(final String message, final Throwable throwable, final boolean enableSuppression, final boolean writableStackTrace) {
- super(message, throwable, enableSuppression, writableStackTrace);
+ public UtilException(final String message, final Throwable cause, final boolean enableSuppression, final boolean writableStackTrace) {
+ super(message, cause, enableSuppression, writableStackTrace);
}
- public UtilException(final Throwable throwable, final String messageTemplate, final Object... params) {
- super(StrUtil.format(messageTemplate, params), throwable);
+ public UtilException(final Throwable cause, final String messageTemplate, final Object... params) {
+ super(StrUtil.format(messageTemplate, params), cause);
}
}
diff --git a/hutool-core/src/main/java/cn/hutool/core/io/IoUtil.java b/hutool-core/src/main/java/cn/hutool/core/io/IoUtil.java
index a9d1f0dce..68f624be5 100755
--- a/hutool-core/src/main/java/cn/hutool/core/io/IoUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/io/IoUtil.java
@@ -882,6 +882,19 @@ public class IoUtil extends NioUtil {
}
}
+ /**
+ * 关闭
+ * 关闭失败不会抛出异常
+ *
+ * @param closeable 被关闭的对象
+ * @throws IOException IO异常
+ */
+ public static void nullSafeClose(final Closeable closeable) throws IOException {
+ if (null != closeable) {
+ closeable.close();
+ }
+ }
+
/**
* 尝试关闭指定对象
* 判断对象如果实现了{@link AutoCloseable},则调用之
diff --git a/hutool-core/src/main/java/cn/hutool/core/io/file/PathCopier.java b/hutool-core/src/main/java/cn/hutool/core/io/file/PathCopier.java
index 99e27bcbe..eda09af2c 100755
--- a/hutool-core/src/main/java/cn/hutool/core/io/file/PathCopier.java
+++ b/hutool-core/src/main/java/cn/hutool/core/io/file/PathCopier.java
@@ -59,7 +59,6 @@ public class PathCopier extends SrcToDestCopier {
this.src = src;
this.target = Assert.notNull(target, "Target path must be not null !");
this.options = ObjUtil.defaultIfNull(options, new CopyOption[]{});
- ;
}
/**
diff --git a/hutool-core/src/main/java/cn/hutool/core/io/file/PathMover.java b/hutool-core/src/main/java/cn/hutool/core/io/file/PathMover.java
index 1ac15cb23..71b36234c 100755
--- a/hutool-core/src/main/java/cn/hutool/core/io/file/PathMover.java
+++ b/hutool-core/src/main/java/cn/hutool/core/io/file/PathMover.java
@@ -58,7 +58,7 @@ public class PathMover {
}
this.src = src;
this.target = Assert.notNull(target, "Target path must be not null !");
- this.options = ObjUtil.defaultIfNull(options, new CopyOption[]{});;
+ this.options = ObjUtil.defaultIfNull(options, new CopyOption[]{});
}
/**
diff --git a/hutool-core/src/main/java/cn/hutool/core/io/stream/EmptyOutputStream.java b/hutool-core/src/main/java/cn/hutool/core/io/stream/EmptyOutputStream.java
index c6de0ac74..01ecaa7ae 100644
--- a/hutool-core/src/main/java/cn/hutool/core/io/stream/EmptyOutputStream.java
+++ b/hutool-core/src/main/java/cn/hutool/core/io/stream/EmptyOutputStream.java
@@ -1,6 +1,5 @@
package cn.hutool.core.io.stream;
-import java.io.IOException;
import java.io.OutputStream;
/**
@@ -47,11 +46,10 @@ public class EmptyOutputStream extends OutputStream {
* 什么也不做,写出到 {@code /dev/null}.
*
* @param b 写出的数据
- * @throws IOException 不抛出
*/
@SuppressWarnings("NullableProblems")
@Override
- public void write(final byte[] b) throws IOException {
+ public void write(final byte[] b) {
// to /dev/null
}
diff --git a/hutool-core/src/main/java/cn/hutool/core/map/ReferenceConcurrentMap.java b/hutool-core/src/main/java/cn/hutool/core/map/ReferenceConcurrentMap.java
index 6e7d43212..7cb2eb1d3 100755
--- a/hutool-core/src/main/java/cn/hutool/core/map/ReferenceConcurrentMap.java
+++ b/hutool-core/src/main/java/cn/hutool/core/map/ReferenceConcurrentMap.java
@@ -31,6 +31,7 @@ import java.util.stream.Collectors;
* @since 5.8.0
*/
public class ReferenceConcurrentMap implements ConcurrentMap, Iterable>, Serializable {
+ private static final long serialVersionUID = 1L;
final ConcurrentMap, V> raw;
private final ReferenceQueue lastQueue;
diff --git a/hutool-core/src/main/java/cn/hutool/core/map/multi/AbsCollValueMap.java b/hutool-core/src/main/java/cn/hutool/core/map/multi/AbsCollValueMap.java
index f43841f8b..2e4d27e63 100644
--- a/hutool-core/src/main/java/cn/hutool/core/map/multi/AbsCollValueMap.java
+++ b/hutool-core/src/main/java/cn/hutool/core/map/multi/AbsCollValueMap.java
@@ -39,7 +39,7 @@ public abstract class AbsCollValueMap extends MapWrapper>
*
* @param mapFactory 生成集合的工厂方法
*/
- protected AbsCollValueMap(Supplier