From 5b559d19bd76385f9189e2ae4a7bf34ad6bfee36 Mon Sep 17 00:00:00 2001 From: Looly Date: Mon, 13 Mar 2023 01:11:43 +0800 Subject: [PATCH] fix code --- hutool-all/pom.xml | 63 ------------------- .../java/cn/hutool/core/codec/HexUtil.java | 2 +- .../cn/hutool/core/codec/PercentCodec.java | 2 +- .../codec/{BaseN => binary}/Base16Codec.java | 4 +- .../core/codec/{BaseN => binary}/Base32.java | 2 +- .../codec/{BaseN => binary}/Base32Codec.java | 5 +- .../core/codec/{BaseN => binary}/Base58.java | 2 +- .../codec/{BaseN => binary}/Base58Codec.java | 2 +- .../core/codec/{BaseN => binary}/Base62.java | 2 +- .../codec/{BaseN => binary}/Base62Codec.java | 2 +- .../core/codec/{BaseN => binary}/Base64.java | 2 +- .../{BaseN => binary}/Base64Decoder.java | 5 +- .../core/codec/binary/package-info.java | 11 ++++ .../core/convert/impl/ArrayConverter.java | 2 +- .../core/date/TemporalAccessorUtil.java | 2 - .../date/format/parser/CSTDateParser.java | 5 +- .../date/format/parser/NormalDateParser.java | 4 ++ .../format/parser/PatternsDateParser.java | 1 + .../date/format/parser/PureDateParser.java | 4 ++ .../core/date/format/parser/TimeParser.java | 4 ++ .../date/format/parser/UTCDateParser.java | 1 + .../InvocationTargetRuntimeException.java | 50 +++++++++++++-- .../hutool/core/exceptions/UtilException.java | 16 ++--- .../main/java/cn/hutool/core/io/IoUtil.java | 13 ++++ .../cn/hutool/core/io/file/PathCopier.java | 1 - .../cn/hutool/core/io/file/PathMover.java | 2 +- .../core/io/stream/EmptyOutputStream.java | 4 +- .../core/map/ReferenceConcurrentMap.java | 1 + .../core/map/multi/AbsCollValueMap.java | 26 ++++---- .../java/cn/hutool/core/map/multi/Graph.java | 1 + .../cn/hutool/core/thread/SyncFinisher.java | 4 +- .../annotation/AnnotatedElementUtilTest.java | 4 +- .../GenericAnnotationMappingTest.java | 2 +- .../HierarchicalAnnotatedElementTest.java | 2 +- .../annotation/MetaAnnotatedElementTest.java | 2 +- .../ResolvedAnnotationMappingTest.java | 2 +- .../java/cn/hutool/core/codec/Base32Test.java | 2 +- .../java/cn/hutool/core/codec/Base58Test.java | 2 +- .../java/cn/hutool/core/codec/Base62Test.java | 2 +- .../java/cn/hutool/core/codec/Base64Test.java | 2 +- .../core/collection/CollStreamUtilTest.java | 5 +- .../convert/NumberChineseFormatterTest.java | 4 +- .../java/cn/hutool/core/io/NioUtilTest.java | 2 +- .../java/cn/hutool/core/lang/AssertTest.java | 11 ++-- .../hutool/core/stream/EntryStreamTest.java | 40 ++++++++---- .../java/cn/hutool/core/util/ObjUtilTest.java | 6 +- .../cn/hutool/cron/TaskExecutorManager.java | 3 - .../cn/hutool/cron/TaskLauncherManager.java | 7 ++- .../main/java/cn/hutool/crypto/KeyUtil.java | 2 +- .../java/cn/hutool/crypto/SecureUtil.java | 2 +- .../crypto/asymmetric/AsymmetricCrypto.java | 2 +- .../asymmetric/AsymmetricEncryptor.java | 2 +- .../crypto/asymmetric/BaseAsymmetric.java | 2 +- .../cn/hutool/crypto/asymmetric/Sign.java | 2 +- .../java/cn/hutool/crypto/digest/mac/Mac.java | 2 +- .../cn/hutool/crypto/digest/otp/HOTP.java | 2 +- .../java/cn/hutool/crypto/symmetric/RC4.java | 2 +- .../crypto/symmetric/SymmetricEncryptor.java | 2 +- .../cn/hutool/crypto/asymmetric/RSATest.java | 2 +- .../cn/hutool/crypto/asymmetric/SM2Test.java | 2 +- .../java/cn/hutool/crypto/digest/OTPTest.java | 2 +- .../cn/hutool/crypto/symmetric/AESTest.java | 2 +- .../java/cn/hutool/db/meta/ResultColumn.java | 18 +++--- .../java/cn/hutool/db/sql/ConditionGroup.java | 1 + .../src/test/java/cn/hutool/db/DerbyTest.java | 7 +-- .../cn/hutool/extra/mail/MailAccount.java | 5 +- .../cn/hutool/extra/qrcode/QrCodeUtil.java | 2 +- .../main/java/cn/hutool/extra/ssh/Sftp.java | 5 +- .../java/cn/hutool/extra/ftp/FtpTest.java | 2 +- .../hutool/extra/qrcode/QrCodeUtilTest.java | 2 +- .../cn/hutool/extra/ssh/JschUtilTest.java | 6 +- .../main/java/cn/hutool/http/HttpUtil.java | 2 +- .../httpclient5/HttpClient5BodyEntity.java | 5 +- .../client/engine/jdk/HttpConnection.java | 4 -- .../client/engine/jdk/JdkClientEngine.java | 2 +- .../client/engine/okhttp/OkHttpEngine.java | 5 +- .../client/engine/okhttp/OkHttpResponse.java | 13 ++-- .../java/cn/hutool/http/html/HTMLFilter.java | 33 ++++++---- .../java/cn/hutool/http/DownloadTest.java | 2 +- .../main/java/cn/hutool/json/jwt/Claims.java | 2 +- .../src/main/java/cn/hutool/json/jwt/JWT.java | 2 +- .../json/jwt/signers/AsymmetricJWTSigner.java | 2 +- .../log/dialect/logtube/LogTubeLog.java | 1 + .../src/test/java/cn/hutool/log/LogTest.java | 3 - .../java/cn/hutool/poi/csv/CsvParser.java | 21 ++++--- .../java/cn/hutool/poi/csv/CsvReader.java | 16 ++--- .../cn/hutool/poi/excel/cell/NullCell.java | 10 --- .../java/cn/hutool/poi/csv/Issue2783Test.java | 12 ++-- .../java/cn/hutool/setting/GroupedSet.java | 5 +- .../java/cn/hutool/setting/SettingLoader.java | 4 +- .../hutool/swing/captcha/AbstractCaptcha.java | 2 +- .../swing/clipboard/ClipboardMonitor.java | 39 ++---------- .../hutool/swing/clipboard/ClipboardUtil.java | 23 +++++-- .../java/cn/hutool/swing/img/ImgUtil.java | 2 +- 94 files changed, 320 insertions(+), 309 deletions(-) rename hutool-core/src/main/java/cn/hutool/core/codec/{BaseN => binary}/Base16Codec.java (98%) rename hutool-core/src/main/java/cn/hutool/core/codec/{BaseN => binary}/Base32.java (99%) rename hutool-core/src/main/java/cn/hutool/core/codec/{BaseN => binary}/Base32Codec.java (98%) mode change 100755 => 100644 rename hutool-core/src/main/java/cn/hutool/core/codec/{BaseN => binary}/Base58.java (99%) rename hutool-core/src/main/java/cn/hutool/core/codec/{BaseN => binary}/Base58Codec.java (99%) rename hutool-core/src/main/java/cn/hutool/core/codec/{BaseN => binary}/Base62.java (99%) rename hutool-core/src/main/java/cn/hutool/core/codec/{BaseN => binary}/Base62Codec.java (99%) rename hutool-core/src/main/java/cn/hutool/core/codec/{BaseN => binary}/Base64.java (99%) mode change 100755 => 100644 rename hutool-core/src/main/java/cn/hutool/core/codec/{BaseN => binary}/Base64Decoder.java (98%) create mode 100644 hutool-core/src/main/java/cn/hutool/core/codec/binary/package-info.java 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>> mapFactory) { + protected AbsCollValueMap(final Supplier>> mapFactory) { super(mapFactory); } @@ -48,7 +48,7 @@ public abstract class AbsCollValueMap extends MapWrapper> * * @param map 提供初始数据的集合 */ - protected AbsCollValueMap(Map> map) { + protected AbsCollValueMap(final Map> map) { super(new HashMap<>(map)); } @@ -72,7 +72,7 @@ public abstract class AbsCollValueMap extends MapWrapper> * @return 是否成功添加 */ @Override - public boolean putAllValues(K key, Collection coll) { + public boolean putAllValues(final K key, final Collection coll) { if (ObjUtil.isNull(coll)) { return false; } @@ -91,7 +91,7 @@ public abstract class AbsCollValueMap extends MapWrapper> * @return 是否成功添加 */ @Override - public boolean putValue(K key, V value) { + public boolean putValue(final K key, final V value) { return super.computeIfAbsent(key, k -> createCollection()) .add(value); } @@ -104,7 +104,7 @@ public abstract class AbsCollValueMap extends MapWrapper> * @return 是否成功删除 */ @Override - public boolean removeValue(K key, V value) { + public boolean removeValue(final K key, final V value) { return Opt.ofNullable(super.get(key)) .map(t -> t.remove(value)) .orElse(false); @@ -118,11 +118,11 @@ public abstract class AbsCollValueMap extends MapWrapper> * @return 是否成功删除 */ @Override - public boolean removeAllValues(K key, Collection values) { + public boolean removeAllValues(final K key, final Collection values) { if (CollUtil.isEmpty(values)) { return false; } - Collection coll = get(key); + final Collection coll = get(key); return ObjUtil.isNotNull(coll) && coll.removeAll(values); } @@ -133,10 +133,10 @@ public abstract class AbsCollValueMap extends MapWrapper> * @return 当前实例 */ @Override - public MultiValueMap filterAllValues(BiPredicate filter) { + public MultiValueMap filterAllValues(final BiPredicate filter) { entrySet().forEach(e -> { - K k = e.getKey(); - Collection coll = e.getValue().stream() + final K k = e.getKey(); + final Collection coll = e.getValue().stream() .filter(v -> filter.test(k, v)) .collect(Collectors.toCollection(this::createCollection)); e.setValue(coll); @@ -151,10 +151,10 @@ public abstract class AbsCollValueMap extends MapWrapper> * @return 当前实例 */ @Override - public MultiValueMap replaceAllValues(BiFunction operate) { + public MultiValueMap replaceAllValues(final BiFunction operate) { entrySet().forEach(e -> { - K k = e.getKey(); - Collection coll = e.getValue().stream() + final K k = e.getKey(); + final Collection coll = e.getValue().stream() .map(v -> operate.apply(k, v)) .collect(Collectors.toCollection(this::createCollection)); e.setValue(coll); diff --git a/hutool-core/src/main/java/cn/hutool/core/map/multi/Graph.java b/hutool-core/src/main/java/cn/hutool/core/map/multi/Graph.java index 681b6b6f0..4300ba9c2 100644 --- a/hutool-core/src/main/java/cn/hutool/core/map/multi/Graph.java +++ b/hutool-core/src/main/java/cn/hutool/core/map/multi/Graph.java @@ -14,6 +14,7 @@ import java.util.function.Predicate; * @since 6.0.0 */ public class Graph extends SetValueMap { + private static final long serialVersionUID = 1L; /** * 添加边 diff --git a/hutool-core/src/main/java/cn/hutool/core/thread/SyncFinisher.java b/hutool-core/src/main/java/cn/hutool/core/thread/SyncFinisher.java index b8cbec6dd..e5263816b 100644 --- a/hutool-core/src/main/java/cn/hutool/core/thread/SyncFinisher.java +++ b/hutool-core/src/main/java/cn/hutool/core/thread/SyncFinisher.java @@ -3,7 +3,6 @@ package cn.hutool.core.thread; import cn.hutool.core.exceptions.UtilException; import java.io.Closeable; -import java.io.IOException; import java.util.LinkedHashSet; import java.util.Set; import java.util.concurrent.CountDownLatch; @@ -70,6 +69,7 @@ public class SyncFinisher implements Closeable { * @param runnable 工作线程 * @return this */ + @SuppressWarnings("resource") public SyncFinisher addRepeatWorker(final Runnable runnable) { for (int i = 0; i < this.threadSize; i++) { addWorker(new Worker() { @@ -197,7 +197,7 @@ public class SyncFinisher implements Closeable { } @Override - public void close() throws IOException { + public void close() { stop(); } diff --git a/hutool-core/src/test/java/cn/hutool/core/annotation/AnnotatedElementUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/annotation/AnnotatedElementUtilTest.java index 78070ef39..b6d69725b 100644 --- a/hutool-core/src/test/java/cn/hutool/core/annotation/AnnotatedElementUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/annotation/AnnotatedElementUtilTest.java @@ -593,7 +593,7 @@ public class AnnotatedElementUtilTest { private @interface Annotation4 {} @Annotation4 - private static class Super {}; + private static class Super {} // ================= interface ================= @@ -608,7 +608,7 @@ public class AnnotatedElementUtilTest { private @interface Annotation6 {} @Annotation6 - private interface Interface {}; + private interface Interface {} // ================= foo ================= diff --git a/hutool-core/src/test/java/cn/hutool/core/annotation/GenericAnnotationMappingTest.java b/hutool-core/src/test/java/cn/hutool/core/annotation/GenericAnnotationMappingTest.java index 46b5cea04..6edb2f018 100644 --- a/hutool-core/src/test/java/cn/hutool/core/annotation/GenericAnnotationMappingTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/annotation/GenericAnnotationMappingTest.java @@ -115,6 +115,6 @@ public class GenericAnnotationMappingTest { } @Annotation1("foo") - private static class Foo {}; + private static class Foo {} } diff --git a/hutool-core/src/test/java/cn/hutool/core/annotation/HierarchicalAnnotatedElementTest.java b/hutool-core/src/test/java/cn/hutool/core/annotation/HierarchicalAnnotatedElementTest.java index 62f577fd1..38a73bc71 100644 --- a/hutool-core/src/test/java/cn/hutool/core/annotation/HierarchicalAnnotatedElementTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/annotation/HierarchicalAnnotatedElementTest.java @@ -203,6 +203,6 @@ public class HierarchicalAnnotatedElementTest { public String method() { return null; } @Annotation1 public static String method2() { return null; } - }; + } } diff --git a/hutool-core/src/test/java/cn/hutool/core/annotation/MetaAnnotatedElementTest.java b/hutool-core/src/test/java/cn/hutool/core/annotation/MetaAnnotatedElementTest.java index ff79d53f9..a5d3f0449 100644 --- a/hutool-core/src/test/java/cn/hutool/core/annotation/MetaAnnotatedElementTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/annotation/MetaAnnotatedElementTest.java @@ -211,6 +211,6 @@ public class MetaAnnotatedElementTest { @Annotation3(name = "foo") @Annotation4("foo") - private static class Foo {}; + private static class Foo {} } diff --git a/hutool-core/src/test/java/cn/hutool/core/annotation/ResolvedAnnotationMappingTest.java b/hutool-core/src/test/java/cn/hutool/core/annotation/ResolvedAnnotationMappingTest.java index 5da4e047b..7527a4c09 100644 --- a/hutool-core/src/test/java/cn/hutool/core/annotation/ResolvedAnnotationMappingTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/annotation/ResolvedAnnotationMappingTest.java @@ -296,6 +296,6 @@ public class ResolvedAnnotationMappingTest { @Annotation3(value = "Annotation3", alias = 312) @Annotation2(value = "Annotation2") @Annotation1(value = "Annotation1", alias = "goo", unDefVal = "foo", unDefVal2 = "foo") - private static class Foo {}; + private static class Foo {} } diff --git a/hutool-core/src/test/java/cn/hutool/core/codec/Base32Test.java b/hutool-core/src/test/java/cn/hutool/core/codec/Base32Test.java index 63a0560d1..cb6effd74 100644 --- a/hutool-core/src/test/java/cn/hutool/core/codec/Base32Test.java +++ b/hutool-core/src/test/java/cn/hutool/core/codec/Base32Test.java @@ -1,6 +1,6 @@ package cn.hutool.core.codec; -import cn.hutool.core.codec.BaseN.Base32; +import cn.hutool.core.codec.binary.Base32; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.text.StrUtil; import org.junit.Assert; diff --git a/hutool-core/src/test/java/cn/hutool/core/codec/Base58Test.java b/hutool-core/src/test/java/cn/hutool/core/codec/Base58Test.java index 6f7d00855..23256a084 100644 --- a/hutool-core/src/test/java/cn/hutool/core/codec/Base58Test.java +++ b/hutool-core/src/test/java/cn/hutool/core/codec/Base58Test.java @@ -1,6 +1,6 @@ package cn.hutool.core.codec; -import cn.hutool.core.codec.BaseN.Base58; +import cn.hutool.core.codec.binary.Base58; import org.junit.Assert; import org.junit.Test; diff --git a/hutool-core/src/test/java/cn/hutool/core/codec/Base62Test.java b/hutool-core/src/test/java/cn/hutool/core/codec/Base62Test.java index b7ba61508..b3e22526b 100644 --- a/hutool-core/src/test/java/cn/hutool/core/codec/Base62Test.java +++ b/hutool-core/src/test/java/cn/hutool/core/codec/Base62Test.java @@ -1,6 +1,6 @@ package cn.hutool.core.codec; -import cn.hutool.core.codec.BaseN.Base62; +import cn.hutool.core.codec.binary.Base62; import cn.hutool.core.util.RandomUtil; import org.junit.Assert; import org.junit.Test; diff --git a/hutool-core/src/test/java/cn/hutool/core/codec/Base64Test.java b/hutool-core/src/test/java/cn/hutool/core/codec/Base64Test.java index 664dea589..103fc4a2a 100644 --- a/hutool-core/src/test/java/cn/hutool/core/codec/Base64Test.java +++ b/hutool-core/src/test/java/cn/hutool/core/codec/Base64Test.java @@ -1,6 +1,6 @@ package cn.hutool.core.codec; -import cn.hutool.core.codec.BaseN.Base64; +import cn.hutool.core.codec.binary.Base64; import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.text.StrUtil; diff --git a/hutool-core/src/test/java/cn/hutool/core/collection/CollStreamUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/collection/CollStreamUtilTest.java index f3d1b883c..951bc8454 100644 --- a/hutool-core/src/test/java/cn/hutool/core/collection/CollStreamUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/collection/CollStreamUtilTest.java @@ -152,7 +152,9 @@ public class CollStreamUtilTest { // 对null友好 final Map> termIdClassIdStudentMap = CollStreamUtil.group2Map(Arrays.asList(null, new Student(2, 2, 1, "王五")), Student::getTermId, Student::getClassId); - final Map> termIdClassIdStudentCompareMap = new HashMap>() {{ + final Map> termIdClassIdStudentCompareMap = new HashMap>() { + private static final long serialVersionUID = 1L; + { put(null, MapUtil.empty()); put(2L, MapUtil.of(2L, new Student(2, 2, 1, "王五"))); }}; @@ -269,6 +271,7 @@ public class CollStreamUtilTest { Assert.assertEquals(set, compare); } + @SuppressWarnings("ConstantValue") @Test public void testMerge() { Map map1 = null; diff --git a/hutool-core/src/test/java/cn/hutool/core/convert/NumberChineseFormatterTest.java b/hutool-core/src/test/java/cn/hutool/core/convert/NumberChineseFormatterTest.java index 462478ece..429c7de15 100644 --- a/hutool-core/src/test/java/cn/hutool/core/convert/NumberChineseFormatterTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/convert/NumberChineseFormatterTest.java @@ -152,8 +152,8 @@ public class NumberChineseFormatterTest { @Test public void formatTest3() { -// String f1 = NumberChineseFormatter.format(5000_8000, false, false); -// Assert.assertEquals("五千万零八千", f1); + final String f1 = NumberChineseFormatter.format(5000_8000, false, false); + Assert.assertEquals("五千万零八千", f1); final String f2 = NumberChineseFormatter.format(1_0035_0089, false, false); Assert.assertEquals("一亿零三十五万零八十九", f2); diff --git a/hutool-core/src/test/java/cn/hutool/core/io/NioUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/io/NioUtilTest.java index cacfbfafe..8a15c9f3b 100755 --- a/hutool-core/src/test/java/cn/hutool/core/io/NioUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/io/NioUtilTest.java @@ -28,7 +28,7 @@ public class NioUtilTest { @Test @Ignore - public void copyByNIOTest2() throws IOException { + public void copyByNIOTest2() { final File file = FileUtil.file("d:/test/logo.jpg"); final BufferedInputStream in = FileUtil.getInputStream(file); final BufferedOutputStream out = FileUtil.getOutputStream("d:/test/2logo.jpg"); diff --git a/hutool-core/src/test/java/cn/hutool/core/lang/AssertTest.java b/hutool-core/src/test/java/cn/hutool/core/lang/AssertTest.java index 7b070c707..82ddf0bfa 100755 --- a/hutool-core/src/test/java/cn/hutool/core/lang/AssertTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/lang/AssertTest.java @@ -11,12 +11,14 @@ import java.util.Map; public class AssertTest { + @SuppressWarnings("ConstantValue") @Test public void isNullTest() { final String a = null; Assert.isNull(a); } + @SuppressWarnings("ConstantValue") @Test public void notNullTest() { final String a = null; @@ -113,10 +115,9 @@ public class AssertTest { Assert.isTrue(i > 0, () -> new IndexOutOfBoundsException("relation message to return")); } + @SuppressWarnings("ConstantValue") @Test public void equalsTest() { - //String a="ab"; - //final String b = new String("abc"); final String a = null; final String b = null; Assert.equals(a, b); @@ -124,18 +125,16 @@ public class AssertTest { Assert.equals(a, b, () -> new RuntimeException(StrUtil.format("{}和{}不相等", a, b))); } + @SuppressWarnings("ConstantValue") @Test public void notEqualsTest() { - //String c="19"; - //final String d = new String("19"); final String c = null; final String d = "null"; - //Assert.notEquals(c,d); - //Assert.notEquals(c,d,"{}等于{}",c,d); Assert.notEquals(c, d, () -> new RuntimeException(StrUtil.format("{}和{}相等", c, d))); } + @SuppressWarnings("ConstantValue") @Test public void notEqualsTest2() { final Object c = null; diff --git a/hutool-core/src/test/java/cn/hutool/core/stream/EntryStreamTest.java b/hutool-core/src/test/java/cn/hutool/core/stream/EntryStreamTest.java index 25c87915b..ff2c5d6bd 100644 --- a/hutool-core/src/test/java/cn/hutool/core/stream/EntryStreamTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/stream/EntryStreamTest.java @@ -162,16 +162,25 @@ public class EntryStreamTest { @Test public void testAppend() { - final Map map1 = new HashMap(){{ + final Map map1 = new HashMap(){ + private static final long serialVersionUID = 2091911960221937275L; + + { put(1, 1); put(2, 2); }}; - final Map map2 = new HashMap(){{ + final Map map2 = new HashMap(){ + private static final long serialVersionUID = 4802315578432177802L; + + { put(3, 3); put(4, 4); }}; Assert.assertEquals( - new ArrayList>(){{ + new ArrayList>(){ + private static final long serialVersionUID = -4045530648496761947L; + + { addAll(map1.entrySet()); addAll(map2.entrySet()); }}, @@ -184,16 +193,25 @@ public class EntryStreamTest { @Test public void testPrepend() { - final Map map1 = new HashMap(){{ + final Map map1 = new HashMap(){ + private static final long serialVersionUID = -8772310525807986780L; + + { put(1, 1); put(2, 2); }}; - final Map map2 = new HashMap(){{ + final Map map2 = new HashMap(){ + private static final long serialVersionUID = -8453400649627773936L; + + { put(3, 3); put(4, 4); }}; Assert.assertEquals( - new ArrayList>(){{ + new ArrayList>(){ + private static final long serialVersionUID = 7564826138581563332L; + + { addAll(map2.entrySet()); addAll(map1.entrySet()); }}, @@ -254,7 +272,7 @@ public class EntryStreamTest { map.put(1, 1); map.put(2, 2); map.put(3, 3); - List keys = EntryStream.of(map).collectKeys(Collectors.toList()); + final List keys = EntryStream.of(map).collectKeys(Collectors.toList()); Assert.assertEquals(new ArrayList<>(map.keySet()), keys); } @@ -264,7 +282,7 @@ public class EntryStreamTest { map.put(1, 1); map.put(2, 2); map.put(3, 3); - List keys = EntryStream.of(map).collectValues(Collectors.toList()); + final List keys = EntryStream.of(map).collectValues(Collectors.toList()); Assert.assertEquals(new ArrayList<>(map.keySet()), keys); } @@ -324,7 +342,7 @@ public class EntryStreamTest { map.put(1, 1); map.put(2, 2); map.put(3, 3); - List list = EntryStream.of(map) + final List list = EntryStream.of(map) .flatMap(e -> Stream.of(e.getKey(), e.getKey() + 1)) .collect(Collectors.toList()); Assert.assertEquals(Arrays.asList(1, 2, 2, 3, 3, 4), list); @@ -567,7 +585,7 @@ public class EntryStreamTest { private final K key; private final V value; - public Entry(K key, V value) { + public Entry(final K key, final V value) { this.key = key; this.value = value; } @@ -583,7 +601,7 @@ public class EntryStreamTest { } @Override - public V setValue(V value) { + public V setValue(final V value) { return null; } } diff --git a/hutool-core/src/test/java/cn/hutool/core/util/ObjUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/ObjUtilTest.java index cb6a25aa1..98baca4dd 100644 --- a/hutool-core/src/test/java/cn/hutool/core/util/ObjUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/util/ObjUtilTest.java @@ -20,6 +20,7 @@ import java.util.function.Function; */ public class ObjUtilTest { + @SuppressWarnings("ConstantValue") @Test public void equalsTest() { Object a = null; @@ -109,6 +110,7 @@ public class ObjUtilTest { Assert.assertFalse(ObjUtil.isNotEmpty(Collections.emptyIterator())); } + @SuppressWarnings("ConstantValue") @Test public void defaultIfNullTest() { final Object val1 = new Object(); @@ -227,7 +229,7 @@ public class ObjUtilTest { private final Integer id; @Override protected Object clone() throws CloneNotSupportedException { - throw new RuntimeException("can not clone this object"); + throw new CloneNotSupportedException("can not clone this object"); } } @@ -255,6 +257,6 @@ public class ObjUtilTest { } @SuppressWarnings("unused") - private interface TypeArgument {}; + private interface TypeArgument {} } diff --git a/hutool-cron/src/main/java/cn/hutool/cron/TaskExecutorManager.java b/hutool-cron/src/main/java/cn/hutool/cron/TaskExecutorManager.java index b4cbffa93..a27b8403f 100644 --- a/hutool-cron/src/main/java/cn/hutool/cron/TaskExecutorManager.java +++ b/hutool-cron/src/main/java/cn/hutool/cron/TaskExecutorManager.java @@ -53,9 +53,6 @@ public class TaskExecutorManager implements Serializable { synchronized (this.executors) { this.executors.add(executor); } - // 子线程是否为deamon线程取决于父线程,因此此处无需显示调用 - // executor.setDaemon(this.scheduler.daemon); -// executor.start(); this.scheduler.threadExecutor.execute(executor); return executor; } diff --git a/hutool-cron/src/main/java/cn/hutool/cron/TaskLauncherManager.java b/hutool-cron/src/main/java/cn/hutool/cron/TaskLauncherManager.java index a6ff22646..1e0959efc 100644 --- a/hutool-cron/src/main/java/cn/hutool/cron/TaskLauncherManager.java +++ b/hutool-cron/src/main/java/cn/hutool/cron/TaskLauncherManager.java @@ -17,6 +17,10 @@ public class TaskLauncherManager implements Serializable { /** 启动器列表 */ protected final List launchers = new ArrayList<>(); + /** + * 构造 + * @param scheduler {@link Scheduler} + */ public TaskLauncherManager(final Scheduler scheduler) { this.scheduler = scheduler; } @@ -31,9 +35,6 @@ public class TaskLauncherManager implements Serializable { synchronized (this.launchers) { this.launchers.add(launcher); } - //子线程是否为deamon线程取决于父线程,因此此处无需显示调用 - //launcher.setDaemon(this.scheduler.daemon); -// launcher.start(); this.scheduler.threadExecutor.execute(launcher); return launcher; } diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/KeyUtil.java b/hutool-crypto/src/main/java/cn/hutool/crypto/KeyUtil.java index 7d2e87923..935b1025a 100644 --- a/hutool-crypto/src/main/java/cn/hutool/crypto/KeyUtil.java +++ b/hutool-crypto/src/main/java/cn/hutool/crypto/KeyUtil.java @@ -1,6 +1,6 @@ package cn.hutool.crypto; -import cn.hutool.core.codec.BaseN.Base64; +import cn.hutool.core.codec.binary.Base64; import cn.hutool.core.io.file.FileUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.lang.Assert; diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/SecureUtil.java b/hutool-crypto/src/main/java/cn/hutool/crypto/SecureUtil.java index 1a530dafe..43f3c1d85 100755 --- a/hutool-crypto/src/main/java/cn/hutool/crypto/SecureUtil.java +++ b/hutool-crypto/src/main/java/cn/hutool/crypto/SecureUtil.java @@ -1,6 +1,6 @@ package cn.hutool.crypto; -import cn.hutool.core.codec.BaseN.Base64; +import cn.hutool.core.codec.binary.Base64; import cn.hutool.core.codec.HexUtil; import cn.hutool.core.lang.Validator; import cn.hutool.core.text.StrUtil; diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricCrypto.java b/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricCrypto.java index 4019b3050..e2fac8afa 100644 --- a/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricCrypto.java +++ b/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricCrypto.java @@ -1,6 +1,6 @@ package cn.hutool.crypto.asymmetric; -import cn.hutool.core.codec.BaseN.Base64; +import cn.hutool.core.codec.binary.Base64; import cn.hutool.core.io.stream.FastByteArrayOutputStream; import cn.hutool.crypto.CipherWrapper; import cn.hutool.crypto.CryptoException; diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricEncryptor.java b/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricEncryptor.java index 02d1922f8..cfbdaa914 100755 --- a/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricEncryptor.java +++ b/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricEncryptor.java @@ -1,6 +1,6 @@ package cn.hutool.crypto.asymmetric; -import cn.hutool.core.codec.BaseN.Base64; +import cn.hutool.core.codec.binary.Base64; import cn.hutool.core.codec.HexUtil; import cn.hutool.core.io.IORuntimeException; import cn.hutool.core.io.IoUtil; diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/BaseAsymmetric.java b/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/BaseAsymmetric.java index 5023289fd..e4dea6a48 100644 --- a/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/BaseAsymmetric.java +++ b/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/BaseAsymmetric.java @@ -1,6 +1,6 @@ package cn.hutool.crypto.asymmetric; -import cn.hutool.core.codec.BaseN.Base64; +import cn.hutool.core.codec.binary.Base64; import cn.hutool.core.lang.Assert; import cn.hutool.crypto.CryptoException; import cn.hutool.crypto.KeyUtil; diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/Sign.java b/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/Sign.java index f0f21ce3d..5fe14ddd0 100755 --- a/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/Sign.java +++ b/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/Sign.java @@ -1,6 +1,6 @@ package cn.hutool.crypto.asymmetric; -import cn.hutool.core.codec.BaseN.Base64; +import cn.hutool.core.codec.binary.Base64; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.CharsetUtil; diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/digest/mac/Mac.java b/hutool-crypto/src/main/java/cn/hutool/crypto/digest/mac/Mac.java index 8b5c4e7cb..c2dd56498 100755 --- a/hutool-crypto/src/main/java/cn/hutool/crypto/digest/mac/Mac.java +++ b/hutool-crypto/src/main/java/cn/hutool/crypto/digest/mac/Mac.java @@ -1,6 +1,6 @@ package cn.hutool.crypto.digest.mac; -import cn.hutool.core.codec.BaseN.Base64; +import cn.hutool.core.codec.binary.Base64; import cn.hutool.core.io.file.FileUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.CharsetUtil; diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/digest/otp/HOTP.java b/hutool-crypto/src/main/java/cn/hutool/crypto/digest/otp/HOTP.java index 2e8c64f6f..35de09bab 100644 --- a/hutool-crypto/src/main/java/cn/hutool/crypto/digest/otp/HOTP.java +++ b/hutool-crypto/src/main/java/cn/hutool/crypto/digest/otp/HOTP.java @@ -1,6 +1,6 @@ package cn.hutool.crypto.digest.otp; -import cn.hutool.core.codec.BaseN.Base32; +import cn.hutool.core.codec.binary.Base32; import cn.hutool.core.util.RandomUtil; import cn.hutool.crypto.digest.HMac; import cn.hutool.crypto.digest.HmacAlgorithm; diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/RC4.java b/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/RC4.java index d7207b465..41be5aed3 100755 --- a/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/RC4.java +++ b/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/RC4.java @@ -1,6 +1,6 @@ package cn.hutool.crypto.symmetric; -import cn.hutool.core.codec.BaseN.Base64; +import cn.hutool.core.codec.binary.Base64; import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.codec.HexUtil; import cn.hutool.core.text.StrUtil; diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/SymmetricEncryptor.java b/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/SymmetricEncryptor.java index 3b3e91e42..fabe9e3ce 100755 --- a/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/SymmetricEncryptor.java +++ b/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/SymmetricEncryptor.java @@ -1,6 +1,6 @@ package cn.hutool.crypto.symmetric; -import cn.hutool.core.codec.BaseN.Base64; +import cn.hutool.core.codec.binary.Base64; import cn.hutool.core.io.IORuntimeException; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.CharsetUtil; diff --git a/hutool-crypto/src/test/java/cn/hutool/crypto/asymmetric/RSATest.java b/hutool-crypto/src/test/java/cn/hutool/crypto/asymmetric/RSATest.java index 2f8cc80ec..98614a4cc 100644 --- a/hutool-crypto/src/test/java/cn/hutool/crypto/asymmetric/RSATest.java +++ b/hutool-crypto/src/test/java/cn/hutool/crypto/asymmetric/RSATest.java @@ -1,6 +1,6 @@ package cn.hutool.crypto.asymmetric; -import cn.hutool.core.codec.BaseN.Base64; +import cn.hutool.core.codec.binary.Base64; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.codec.HexUtil; diff --git a/hutool-crypto/src/test/java/cn/hutool/crypto/asymmetric/SM2Test.java b/hutool-crypto/src/test/java/cn/hutool/crypto/asymmetric/SM2Test.java index 2aa251d37..bbbb2ae03 100644 --- a/hutool-crypto/src/test/java/cn/hutool/crypto/asymmetric/SM2Test.java +++ b/hutool-crypto/src/test/java/cn/hutool/crypto/asymmetric/SM2Test.java @@ -1,6 +1,6 @@ package cn.hutool.crypto.asymmetric; -import cn.hutool.core.codec.BaseN.Base64; +import cn.hutool.core.codec.binary.Base64; import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.codec.HexUtil; import cn.hutool.core.text.StrUtil; diff --git a/hutool-crypto/src/test/java/cn/hutool/crypto/digest/OTPTest.java b/hutool-crypto/src/test/java/cn/hutool/crypto/digest/OTPTest.java index 36c39aad4..71e694da0 100644 --- a/hutool-crypto/src/test/java/cn/hutool/crypto/digest/OTPTest.java +++ b/hutool-crypto/src/test/java/cn/hutool/crypto/digest/OTPTest.java @@ -1,6 +1,6 @@ package cn.hutool.crypto.digest; -import cn.hutool.core.codec.BaseN.Base32; +import cn.hutool.core.codec.binary.Base32; import cn.hutool.crypto.digest.otp.HOTP; import cn.hutool.crypto.digest.otp.TOTP; import org.junit.Assert; diff --git a/hutool-crypto/src/test/java/cn/hutool/crypto/symmetric/AESTest.java b/hutool-crypto/src/test/java/cn/hutool/crypto/symmetric/AESTest.java index 0273947f1..ed35a56e7 100644 --- a/hutool-crypto/src/test/java/cn/hutool/crypto/symmetric/AESTest.java +++ b/hutool-crypto/src/test/java/cn/hutool/crypto/symmetric/AESTest.java @@ -1,6 +1,6 @@ package cn.hutool.crypto.symmetric; -import cn.hutool.core.codec.BaseN.Base64; +import cn.hutool.core.codec.binary.Base64; import cn.hutool.core.codec.HexUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.crypto.KeyUtil; diff --git a/hutool-db/src/main/java/cn/hutool/db/meta/ResultColumn.java b/hutool-db/src/main/java/cn/hutool/db/meta/ResultColumn.java index 6187ea5ef..3db44b795 100644 --- a/hutool-db/src/main/java/cn/hutool/db/meta/ResultColumn.java +++ b/hutool-db/src/main/java/cn/hutool/db/meta/ResultColumn.java @@ -151,17 +151,16 @@ public class ResultColumn { return className; } - public static enum ColumnNullable { + public enum ColumnNullable { NO_NULLS(ResultSetMetaData.columnNoNulls), NULLABLE(ResultSetMetaData.columnNullable), UNKNOWN(ResultSetMetaData.columnNullableUnknown); - final int value; - - private ColumnNullable(final int value) { - this.value = value; - } - + /** + * ResultSetMetaData中的int值转枚举 + * @param nullable nullable值 + * @return ColumnNullable + */ public static ColumnNullable of(final int nullable) { switch (nullable) { case ResultSetMetaData.columnNoNulls: @@ -172,5 +171,10 @@ public class ResultColumn { return UNKNOWN; } } + + final int value; + ColumnNullable(final int value) { + this.value = value; + } } } diff --git a/hutool-db/src/main/java/cn/hutool/db/sql/ConditionGroup.java b/hutool-db/src/main/java/cn/hutool/db/sql/ConditionGroup.java index ff817a1df..07584d818 100644 --- a/hutool-db/src/main/java/cn/hutool/db/sql/ConditionGroup.java +++ b/hutool-db/src/main/java/cn/hutool/db/sql/ConditionGroup.java @@ -13,6 +13,7 @@ import java.util.List; * @since 5.7.21 */ public class ConditionGroup extends Condition { + private static final long serialVersionUID = 1L; /** * 条件列表 */ diff --git a/hutool-db/src/test/java/cn/hutool/db/DerbyTest.java b/hutool-db/src/test/java/cn/hutool/db/DerbyTest.java index ed410c89b..7c7dc10db 100644 --- a/hutool-db/src/test/java/cn/hutool/db/DerbyTest.java +++ b/hutool-db/src/test/java/cn/hutool/db/DerbyTest.java @@ -5,7 +5,6 @@ import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; -import java.sql.SQLException; import java.util.List; /** @@ -19,7 +18,7 @@ public class DerbyTest { private static final String DS_GROUP_NAME = "derby"; @BeforeClass - public static void init() throws SQLException { + public static void init() { final Db db = Db.of(DS_GROUP_NAME); db.execute("CREATE TABLE test(a INTEGER, b BIGINT)"); @@ -31,14 +30,14 @@ public class DerbyTest { @Test @Ignore - public void queryTest() throws SQLException { + public void queryTest() { final List query = Db.of(DS_GROUP_NAME).query("select * from test"); Assert.assertEquals(4, query.size()); } @Test @Ignore - public void findTest() throws SQLException { + public void findTest() { final List query = Db.of(DS_GROUP_NAME).find(Entity.of("test")); Assert.assertEquals(4, query.size()); } diff --git a/hutool-extra/src/main/java/cn/hutool/extra/mail/MailAccount.java b/hutool-extra/src/main/java/cn/hutool/extra/mail/MailAccount.java index f5efacde3..7bc4e7896 100755 --- a/hutool-extra/src/main/java/cn/hutool/extra/mail/MailAccount.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/mail/MailAccount.java @@ -37,12 +37,13 @@ public class MailAccount implements Serializable { // System Properties private static final String SPLIT_LONG_PARAMS = "mail.mime.splitlongparameters"; - //private static final String ENCODE_FILE_NAME = "mail.mime.encodefilename"; - //private static final String CHARSET = "mail.mime.charset"; // 其他 private static final String MAIL_DEBUG = "mail.debug"; + /** + * 默认mail配置查询路径 + */ public static final String[] MAIL_SETTING_PATHS = new String[]{"config/mail.setting", "config/mailAccount.setting", "mail.setting"}; /** diff --git a/hutool-extra/src/main/java/cn/hutool/extra/qrcode/QrCodeUtil.java b/hutool-extra/src/main/java/cn/hutool/extra/qrcode/QrCodeUtil.java index 975c5c54c..522bce87d 100755 --- a/hutool-extra/src/main/java/cn/hutool/extra/qrcode/QrCodeUtil.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/qrcode/QrCodeUtil.java @@ -1,6 +1,6 @@ package cn.hutool.extra.qrcode; -import cn.hutool.core.codec.BaseN.Base64; +import cn.hutool.core.codec.binary.Base64; import cn.hutool.core.util.ObjUtil; import cn.hutool.swing.img.ImgUtil; import com.google.zxing.BarcodeFormat; diff --git a/hutool-extra/src/main/java/cn/hutool/extra/ssh/Sftp.java b/hutool-extra/src/main/java/cn/hutool/extra/ssh/Sftp.java index bd01b8da7..20663b39b 100755 --- a/hutool-extra/src/main/java/cn/hutool/extra/ssh/Sftp.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/ssh/Sftp.java @@ -499,6 +499,7 @@ public class Sftp extends AbstractFtp { } } + @SuppressWarnings("resource") @Override public boolean uploadFile(final String destPath, final File file) { if(false == FileUtil.isFile(file)){ @@ -521,13 +522,11 @@ public class Sftp extends AbstractFtp { * @param destPath 服务端路径,可以为{@code null} 或者相对路径或绝对路径 * @param fileName 文件名 * @param fileStream 文件流 - * @return 是否上传成功 * @since 5.7.16 */ - public boolean uploadFile(String destPath, final String fileName, final InputStream fileStream) { + public void uploadFile(String destPath, final String fileName, final InputStream fileStream) { destPath = StrUtil.addSuffixIfNot(destPath, StrUtil.SLASH) + StrUtil.removePrefix(fileName, StrUtil.SLASH); put(fileStream, destPath, null, Mode.OVERWRITE); - return true; } /** diff --git a/hutool-extra/src/test/java/cn/hutool/extra/ftp/FtpTest.java b/hutool-extra/src/test/java/cn/hutool/extra/ftp/FtpTest.java index fb18662ef..b867c7004 100644 --- a/hutool-extra/src/test/java/cn/hutool/extra/ftp/FtpTest.java +++ b/hutool-extra/src/test/java/cn/hutool/extra/ftp/FtpTest.java @@ -105,7 +105,7 @@ public class FtpTest { @Test @Ignore - public void existSftpTest() throws Exception { + public void existSftpTest() { try (final Sftp ftp = new Sftp("127.0.0.1", 22, "test", "test")) { Console.log(ftp.pwd()); Console.log(ftp.exist(null)); diff --git a/hutool-extra/src/test/java/cn/hutool/extra/qrcode/QrCodeUtilTest.java b/hutool-extra/src/test/java/cn/hutool/extra/qrcode/QrCodeUtilTest.java index 807405e88..02d3b42f0 100755 --- a/hutool-extra/src/test/java/cn/hutool/extra/qrcode/QrCodeUtilTest.java +++ b/hutool-extra/src/test/java/cn/hutool/extra/qrcode/QrCodeUtilTest.java @@ -1,6 +1,6 @@ package cn.hutool.extra.qrcode; -import cn.hutool.core.codec.BaseN.Base64; +import cn.hutool.core.codec.binary.Base64; import cn.hutool.core.io.file.FileUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.lang.Console; diff --git a/hutool-extra/src/test/java/cn/hutool/extra/ssh/JschUtilTest.java b/hutool-extra/src/test/java/cn/hutool/extra/ssh/JschUtilTest.java index 6894ec120..300886ca9 100755 --- a/hutool-extra/src/test/java/cn/hutool/extra/ssh/JschUtilTest.java +++ b/hutool-extra/src/test/java/cn/hutool/extra/ssh/JschUtilTest.java @@ -27,18 +27,16 @@ public class JschUtilTest { @Test @Ignore - public void bindRemotePort() throws InterruptedException { + public void bindRemotePort() { // 建立会话 final Session session = JschUtil.getSession("looly.centos", 22, "test", "123456"); // 绑定ssh服务端8089端口到本机的8000端口上 final boolean b = JschUtil.bindRemotePort(session, 8089, "localhost", 8000); Assert.assertTrue(b); // 保证一直运行 -// while (true){ -// Thread.sleep(3000); -// } } + @SuppressWarnings("resource") @Test @Ignore public void sftpTest() { diff --git a/hutool-http/src/main/java/cn/hutool/http/HttpUtil.java b/hutool-http/src/main/java/cn/hutool/http/HttpUtil.java index c79b36d6f..48faf4389 100755 --- a/hutool-http/src/main/java/cn/hutool/http/HttpUtil.java +++ b/hutool-http/src/main/java/cn/hutool/http/HttpUtil.java @@ -1,6 +1,6 @@ package cn.hutool.http; -import cn.hutool.core.codec.BaseN.Base64; +import cn.hutool.core.codec.binary.Base64; import cn.hutool.core.net.url.UrlQueryUtil; import cn.hutool.core.text.StrUtil; import cn.hutool.http.client.ClientConfig; diff --git a/hutool-http/src/main/java/cn/hutool/http/client/engine/httpclient5/HttpClient5BodyEntity.java b/hutool-http/src/main/java/cn/hutool/http/client/engine/httpclient5/HttpClient5BodyEntity.java index b2f3ce07b..6ffe0319c 100755 --- a/hutool-http/src/main/java/cn/hutool/http/client/engine/httpclient5/HttpClient5BodyEntity.java +++ b/hutool-http/src/main/java/cn/hutool/http/client/engine/httpclient5/HttpClient5BodyEntity.java @@ -4,7 +4,6 @@ import cn.hutool.http.client.body.BytesBody; import cn.hutool.http.client.body.HttpBody; import org.apache.hc.core5.http.io.entity.AbstractHttpEntity; -import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.nio.charset.Charset; @@ -50,8 +49,8 @@ public class HttpClient5BodyEntity extends AbstractHttpEntity { } @Override - public void close() throws IOException { - + public void close() { + // do nothing } @Override diff --git a/hutool-http/src/main/java/cn/hutool/http/client/engine/jdk/HttpConnection.java b/hutool-http/src/main/java/cn/hutool/http/client/engine/jdk/HttpConnection.java index c03afbeb1..4f0ce59a2 100644 --- a/hutool-http/src/main/java/cn/hutool/http/client/engine/jdk/HttpConnection.java +++ b/hutool-http/src/main/java/cn/hutool/http/client/engine/jdk/HttpConnection.java @@ -403,10 +403,6 @@ public class HttpConnection implements HeaderOperation { final StringBuilder sb = StrUtil.builder(); sb.append("Request URL: ").append(this.url).append(StrUtil.CRLF); sb.append("Request Method: ").append(this.getMethod()).append(StrUtil.CRLF); - // sb.append("Request Headers: ").append(StrUtil.CRLF); - // for (Entry> entry : this.conn.getHeaderFields().entrySet()) { - // sb.append(" ").append(entry).append(StrUtil.CRLF); - // } return sb.toString(); } diff --git a/hutool-http/src/main/java/cn/hutool/http/client/engine/jdk/JdkClientEngine.java b/hutool-http/src/main/java/cn/hutool/http/client/engine/jdk/JdkClientEngine.java index c079f416f..61d704b08 100755 --- a/hutool-http/src/main/java/cn/hutool/http/client/engine/jdk/JdkClientEngine.java +++ b/hutool-http/src/main/java/cn/hutool/http/client/engine/jdk/JdkClientEngine.java @@ -79,7 +79,7 @@ public class JdkClientEngine implements ClientEngine { } @Override - public void close() throws IOException { + public void close() { if (null != conn) { conn.disconnectQuietly(); } diff --git a/hutool-http/src/main/java/cn/hutool/http/client/engine/okhttp/OkHttpEngine.java b/hutool-http/src/main/java/cn/hutool/http/client/engine/okhttp/OkHttpEngine.java index 0eff77c41..97f5507bd 100755 --- a/hutool-http/src/main/java/cn/hutool/http/client/engine/okhttp/OkHttpEngine.java +++ b/hutool-http/src/main/java/cn/hutool/http/client/engine/okhttp/OkHttpEngine.java @@ -1,7 +1,6 @@ package cn.hutool.http.client.engine.okhttp; import cn.hutool.core.io.IORuntimeException; -import cn.hutool.core.util.ObjUtil; import cn.hutool.http.client.ClientConfig; import cn.hutool.http.client.ClientEngine; import cn.hutool.http.client.Request; @@ -60,8 +59,8 @@ public class OkHttpEngine implements ClientEngine { } @Override - public void close() throws IOException { - // ignore + public void close() { + // do nothing } /** diff --git a/hutool-http/src/main/java/cn/hutool/http/client/engine/okhttp/OkHttpResponse.java b/hutool-http/src/main/java/cn/hutool/http/client/engine/okhttp/OkHttpResponse.java index c5d13e56d..a5dd104ec 100755 --- a/hutool-http/src/main/java/cn/hutool/http/client/engine/okhttp/OkHttpResponse.java +++ b/hutool-http/src/main/java/cn/hutool/http/client/engine/okhttp/OkHttpResponse.java @@ -7,14 +7,9 @@ import kotlin.Pair; import okhttp3.Headers; import okhttp3.ResponseBody; -import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * OkHttp3的{@link okhttp3.Response} 响应包装 @@ -74,7 +69,9 @@ public class OkHttpResponse implements Response { } @Override - public void close() throws IOException { - rawRes.close(); + public void close() { + if(null != this.rawRes){ + rawRes.close(); + } } } diff --git a/hutool-http/src/main/java/cn/hutool/http/html/HTMLFilter.java b/hutool-http/src/main/java/cn/hutool/http/html/HTMLFilter.java index 2df015628..d83ab2462 100644 --- a/hutool-http/src/main/java/cn/hutool/http/html/HTMLFilter.java +++ b/hutool-http/src/main/java/cn/hutool/http/html/HTMLFilter.java @@ -201,12 +201,16 @@ public final class HTMLFilter { } } + // --------------------------------------------------------------- // my versions of some PHP library functions - public static String chr(final int decimal) { - return String.valueOf((char) decimal); - } + /** + * HTML特殊字符替换 + * + * @param s HTML + * @return 替换后的HTML + */ public static String htmlSpecialChars(final String s) { String result = s; result = regexReplace(P_AMP, "&", result); @@ -250,10 +254,22 @@ public final class HTMLFilter { return s; } + /** + * flag determining whether to try to make tags when presented with "unbalanced" angle brackets (e.g. "<b text </b>" becomes "<b> text </g>"). + * If set to false, unbalanced angle brackets will be + * html escaped. + * + * @return alwaysMakeTags + */ public boolean isAlwaysMakeTags() { return alwaysMakeTags; } + /** + * flag determining whether comments are allowed in input String. + * + * @return stripComment + */ public boolean isStripComments() { return stripComment; } @@ -364,7 +380,6 @@ public final class HTMLFilter { final String body = m.group(2); String ending = m.group(3); - // debug( "in a starting tag, name='" + name + "'; body='" + body + "'; ending='" + ending + "'" ); if (allowed(name)) { final StringBuilder params = new StringBuilder(); @@ -386,10 +401,6 @@ public final class HTMLFilter { paramName = paramNames.get(ii).toLowerCase(); paramValue = paramValues.get(ii); - // debug( "paramName='" + paramName + "'" ); - // debug( "paramValue='" + paramValue + "'" ); - // debug( "allowed? " + vAllowed.get( name ).contains( paramName ) ); - if (allowedAttribute(name, paramName)) { if (inArray(paramName, vProtocolAtts)) { paramValue = processParamProtocol(paramValue); @@ -454,7 +465,7 @@ public final class HTMLFilter { while (m.find()) { final String match = m.group(1); final int decimal = Integer.decode(match); - m.appendReplacement(buf, Matcher.quoteReplacement(chr(decimal))); + m.appendReplacement(buf, Matcher.quoteReplacement(CharUtil.toString((char) decimal))); } m.appendTail(buf); s = buf.toString(); @@ -464,7 +475,7 @@ public final class HTMLFilter { while (m.find()) { final String match = m.group(1); final int decimal = Integer.parseInt(match, 16); - m.appendReplacement(buf, Matcher.quoteReplacement(chr(decimal))); + m.appendReplacement(buf, Matcher.quoteReplacement(CharUtil.toString((char) decimal))); } m.appendTail(buf); s = buf.toString(); @@ -474,7 +485,7 @@ public final class HTMLFilter { while (m.find()) { final String match = m.group(1); final int decimal = Integer.parseInt(match, 16); - m.appendReplacement(buf, Matcher.quoteReplacement(chr(decimal))); + m.appendReplacement(buf, Matcher.quoteReplacement(CharUtil.toString((char) decimal))); } m.appendTail(buf); s = buf.toString(); diff --git a/hutool-http/src/test/java/cn/hutool/http/DownloadTest.java b/hutool-http/src/test/java/cn/hutool/http/DownloadTest.java index ec5e36eb7..d30928f7d 100644 --- a/hutool-http/src/test/java/cn/hutool/http/DownloadTest.java +++ b/hutool-http/src/test/java/cn/hutool/http/DownloadTest.java @@ -1,6 +1,6 @@ package cn.hutool.http; -import cn.hutool.core.codec.BaseN.Base64; +import cn.hutool.core.codec.binary.Base64; import cn.hutool.core.io.file.FileUtil; import cn.hutool.core.io.IORuntimeException; import cn.hutool.core.io.StreamProgress; diff --git a/hutool-json/src/main/java/cn/hutool/json/jwt/Claims.java b/hutool-json/src/main/java/cn/hutool/json/jwt/Claims.java index af10857ce..fe398cb48 100755 --- a/hutool-json/src/main/java/cn/hutool/json/jwt/Claims.java +++ b/hutool-json/src/main/java/cn/hutool/json/jwt/Claims.java @@ -1,6 +1,6 @@ package cn.hutool.json.jwt; -import cn.hutool.core.codec.BaseN.Base64; +import cn.hutool.core.codec.binary.Base64; import cn.hutool.core.date.format.GlobalCustomFormat; import cn.hutool.core.lang.Assert; import cn.hutool.core.map.MapUtil; diff --git a/hutool-json/src/main/java/cn/hutool/json/jwt/JWT.java b/hutool-json/src/main/java/cn/hutool/json/jwt/JWT.java index 60ef63612..5cf7f63f3 100755 --- a/hutool-json/src/main/java/cn/hutool/json/jwt/JWT.java +++ b/hutool-json/src/main/java/cn/hutool/json/jwt/JWT.java @@ -1,6 +1,6 @@ package cn.hutool.json.jwt; -import cn.hutool.core.codec.BaseN.Base64; +import cn.hutool.core.codec.binary.Base64; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.exceptions.ValidateException; diff --git a/hutool-json/src/main/java/cn/hutool/json/jwt/signers/AsymmetricJWTSigner.java b/hutool-json/src/main/java/cn/hutool/json/jwt/signers/AsymmetricJWTSigner.java index 993a8c06c..c59f1c668 100755 --- a/hutool-json/src/main/java/cn/hutool/json/jwt/signers/AsymmetricJWTSigner.java +++ b/hutool-json/src/main/java/cn/hutool/json/jwt/signers/AsymmetricJWTSigner.java @@ -1,6 +1,6 @@ package cn.hutool.json.jwt.signers; -import cn.hutool.core.codec.BaseN.Base64; +import cn.hutool.core.codec.binary.Base64; import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.text.StrUtil; import cn.hutool.crypto.asymmetric.Sign; diff --git a/hutool-log/src/main/java/cn/hutool/log/dialect/logtube/LogTubeLog.java b/hutool-log/src/main/java/cn/hutool/log/dialect/logtube/LogTubeLog.java index e5471b3c1..11df073a7 100644 --- a/hutool-log/src/main/java/cn/hutool/log/dialect/logtube/LogTubeLog.java +++ b/hutool-log/src/main/java/cn/hutool/log/dialect/logtube/LogTubeLog.java @@ -14,6 +14,7 @@ import io.github.logtube.core.IEventLogger; * @since 5.6.6 */ public class LogTubeLog extends AbstractLog { + private static final long serialVersionUID = 1L; private final IEventLogger logger; diff --git a/hutool-log/src/test/java/cn/hutool/log/LogTest.java b/hutool-log/src/test/java/cn/hutool/log/LogTest.java index c6977d4cf..abb30c59c 100644 --- a/hutool-log/src/test/java/cn/hutool/log/LogTest.java +++ b/hutool-log/src/test/java/cn/hutool/log/LogTest.java @@ -19,9 +19,6 @@ public class LogTest { log.debug("This is {} log", Level.DEBUG); log.info("This is {} log", Level.INFO); log.warn("This is {} log", Level.WARN); - -// Exception e = new Exception("test Exception"); -// log.error(e, "This is {} log", Level.ERROR); } /** diff --git a/hutool-poi/src/main/java/cn/hutool/poi/csv/CsvParser.java b/hutool-poi/src/main/java/cn/hutool/poi/csv/CsvParser.java index 8813f46fb..35ce2d864 100755 --- a/hutool-poi/src/main/java/cn/hutool/poi/csv/CsvParser.java +++ b/hutool-poi/src/main/java/cn/hutool/poi/csv/CsvParser.java @@ -12,12 +12,7 @@ import java.io.Closeable; import java.io.IOException; import java.io.Reader; import java.io.Serializable; -import java.util.ArrayList; -import java.util.Collections; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; /** * CSV行解析器,参考:FastCSV @@ -32,7 +27,7 @@ public final class CsvParser extends ComputeIter implements Closeable, S private final Reader reader; private final CsvReadConfig config; - private final Buffer buf = new Buffer(IoUtil.DEFAULT_LARGE_BUFFER_SIZE); + private final Buffer buf; /** * 前一个特殊分界字符 */ @@ -78,8 +73,20 @@ public final class CsvParser extends ComputeIter implements Closeable, S * @param config 配置,null则为默认配置 */ public CsvParser(final Reader reader, final CsvReadConfig config) { + this(reader, config, IoUtil.DEFAULT_LARGE_BUFFER_SIZE); + } + + /** + * CSV解析器 + * + * @param reader Reader + * @param config 配置,null则为默认配置 + * @param bufferSize 默认缓存大小 + */ + public CsvParser(final Reader reader, final CsvReadConfig config, final int bufferSize) { this.reader = Objects.requireNonNull(reader, "reader must not be null"); this.config = ObjUtil.defaultIfNull(config, CsvReadConfig::defaultConfig); + this.buf = new Buffer(bufferSize); } /** diff --git a/hutool-poi/src/main/java/cn/hutool/poi/csv/CsvReader.java b/hutool-poi/src/main/java/cn/hutool/poi/csv/CsvReader.java index 86f98424e..9589ddcbe 100755 --- a/hutool-poi/src/main/java/cn/hutool/poi/csv/CsvReader.java +++ b/hutool-poi/src/main/java/cn/hutool/poi/csv/CsvReader.java @@ -1,13 +1,12 @@ package cn.hutool.poi.csv; -import cn.hutool.core.io.file.FileUtil; import cn.hutool.core.io.IORuntimeException; import cn.hutool.core.io.IoUtil; +import cn.hutool.core.io.file.FileUtil; import cn.hutool.core.lang.func.SerConsumer; import java.io.Closeable; import java.io.File; -import java.io.IOException; import java.io.Reader; import java.nio.charset.Charset; import java.nio.file.Path; @@ -132,14 +131,9 @@ public class CsvReader extends CsvBaseReader implements Iterable, Closea * @since 5.7.14 */ public Stream stream() { - return StreamSupport.stream(spliterator(), false) - .onClose(() -> { - try { - close(); - } catch (final IOException e) { - throw new IORuntimeException(e); - } - }); + return StreamSupport + .stream(spliterator(), false) + .onClose(this::close); } @Override @@ -148,7 +142,7 @@ public class CsvReader extends CsvBaseReader implements Iterable, Closea } @Override - public void close() throws IOException { + public void close() { IoUtil.close(this.reader); } } diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/NullCell.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/NullCell.java index 1f729dcde..8c7fef9a1 100644 --- a/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/NullCell.java +++ b/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/NullCell.java @@ -73,21 +73,11 @@ public class NullCell implements Cell { return null; } - @Deprecated - public CellType getCellTypeEnum() { - return null; - } - @Override public CellType getCachedFormulaResultType() { return null; } - @Deprecated - public CellType getCachedFormulaResultTypeEnum() { - return null; - } - @Override public void setCellValue(final double value) { throw new UnsupportedOperationException("Can not set any thing to null cell!"); diff --git a/hutool-poi/src/test/java/cn/hutool/poi/csv/Issue2783Test.java b/hutool-poi/src/test/java/cn/hutool/poi/csv/Issue2783Test.java index 101dd6937..59d5dad01 100755 --- a/hutool-poi/src/test/java/cn/hutool/poi/csv/Issue2783Test.java +++ b/hutool-poi/src/test/java/cn/hutool/poi/csv/Issue2783Test.java @@ -11,12 +11,14 @@ public class Issue2783Test { @Test @Ignore public void readTest() { -// final CsvWriter writer = CsvUtil.getWriter("d:/test/big.csv", CharsetUtil.UTF_8); -// for (int i = 0; i < Integer.MAX_VALUE; i++) { -// writer.writeLine("aaaa", "bbbb", "ccccc", "dddd"); -// } -// writer.close(); + // 测试数据 + final CsvWriter writer = CsvUtil.getWriter("d:/test/big.csv", CharsetUtil.UTF_8); + for (int i = 0; i < Integer.MAX_VALUE; i++) { + writer.writeLine("aaaa", "bbbb", "ccccc", "dddd"); + } + writer.close(); + // 读取 final CsvReader reader = CsvUtil.getReader(FileUtil.getReader("d:/test/big.csv", CharsetUtil.UTF_8)); reader.read((SerConsumer) strings -> { diff --git a/hutool-setting/src/main/java/cn/hutool/setting/GroupedSet.java b/hutool-setting/src/main/java/cn/hutool/setting/GroupedSet.java index 011b54d43..c6db13f82 100644 --- a/hutool-setting/src/main/java/cn/hutool/setting/GroupedSet.java +++ b/hutool-setting/src/main/java/cn/hutool/setting/GroupedSet.java @@ -1,7 +1,6 @@ package cn.hutool.setting; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.collection.ListUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.net.url.URLUtil; import cn.hutool.core.text.StrUtil; @@ -183,10 +182,9 @@ public class GroupedSet extends HashMap> { * 加载设置文件。 此方法不会关闭流对象 * * @param settingStream 文件流 - * @return 加载成功与否 * @throws IOException IO异常 */ - public boolean load(final InputStream settingStream) throws IOException { + public void load(final InputStream settingStream) throws IOException { super.clear(); BufferedReader reader = null; try { @@ -233,7 +231,6 @@ public class GroupedSet extends HashMap> { } finally { IoUtil.close(reader); } - return true; } /** diff --git a/hutool-setting/src/main/java/cn/hutool/setting/SettingLoader.java b/hutool-setting/src/main/java/cn/hutool/setting/SettingLoader.java index 7715aeb86..ad0747554 100755 --- a/hutool-setting/src/main/java/cn/hutool/setting/SettingLoader.java +++ b/hutool-setting/src/main/java/cn/hutool/setting/SettingLoader.java @@ -96,10 +96,9 @@ public class SettingLoader { * 加载设置文件。 此方法不会关闭流对象 * * @param settingStream 文件流 - * @return 加载成功与否 * @throws IOException IO异常 */ - synchronized public boolean load(final InputStream settingStream) throws IOException { + synchronized public void load(final InputStream settingStream) throws IOException { this.groupedMap.clear(); LineReader reader = null; try { @@ -141,7 +140,6 @@ public class SettingLoader { } finally { IoUtil.close(reader); } - return true; } /** diff --git a/hutool-swing/src/main/java/cn/hutool/swing/captcha/AbstractCaptcha.java b/hutool-swing/src/main/java/cn/hutool/swing/captcha/AbstractCaptcha.java index e3202d6c7..3953c457a 100755 --- a/hutool-swing/src/main/java/cn/hutool/swing/captcha/AbstractCaptcha.java +++ b/hutool-swing/src/main/java/cn/hutool/swing/captcha/AbstractCaptcha.java @@ -1,6 +1,6 @@ package cn.hutool.swing.captcha; -import cn.hutool.core.codec.BaseN.Base64; +import cn.hutool.core.codec.binary.Base64; import cn.hutool.core.io.file.FileUtil; import cn.hutool.core.io.IORuntimeException; import cn.hutool.core.io.IoUtil; diff --git a/hutool-swing/src/main/java/cn/hutool/swing/clipboard/ClipboardMonitor.java b/hutool-swing/src/main/java/cn/hutool/swing/clipboard/ClipboardMonitor.java index f4978fe82..a4582b6ce 100755 --- a/hutool-swing/src/main/java/cn/hutool/swing/clipboard/ClipboardMonitor.java +++ b/hutool-swing/src/main/java/cn/hutool/swing/clipboard/ClipboardMonitor.java @@ -16,21 +16,16 @@ import java.util.Set; * @author looly * @since 4.5.6 */ -public enum ClipboardMonitor implements ClipboardOwner, Runnable, Closeable { - /** - * 监听器单例 - */ - INSTANCE; - +public class ClipboardMonitor implements ClipboardOwner, Runnable, Closeable { /** 默认重试此时:10 */ public static final int DEFAULT_TRY_COUNT = 10; /** 默认重试等待:100 */ public static final long DEFAULT_DELAY = 100; /** 重试次数 */ - private int tryCount; + private final int tryCount; /** 重试等待 */ - private long delay; + private final long delay; /** 系统剪贴板对象 */ private final Clipboard clipboard; /** 监听事件处理 */ @@ -42,7 +37,7 @@ public enum ClipboardMonitor implements ClipboardOwner, Runnable, Closeable { /** * 构造,尝试获取剪贴板内容的次数为10,第二次之后延迟100毫秒 */ - ClipboardMonitor() { + public ClipboardMonitor() { this(DEFAULT_TRY_COUNT, DEFAULT_DELAY); } @@ -52,7 +47,7 @@ public enum ClipboardMonitor implements ClipboardOwner, Runnable, Closeable { * @param tryCount 尝试获取剪贴板内容的次数 * @param delay 响应延迟,当从第二次开始,延迟一定毫秒数等待剪贴板可以获取,当tryCount小于2时无效 */ - ClipboardMonitor(final int tryCount, final long delay) { + public ClipboardMonitor(final int tryCount, final long delay) { this(tryCount, delay, ClipboardUtil.getClipboard()); } @@ -69,29 +64,6 @@ public enum ClipboardMonitor implements ClipboardOwner, Runnable, Closeable { this.clipboard = clipboard; } // ---------------------------------------------------------------------------------------------------------- Constructor end - - /** - * 设置重试次数 - * - * @param tryCount 重试次数 - * @return this - */ - public ClipboardMonitor setTryCount(final int tryCount) { - this.tryCount = tryCount; - return this; - } - - /** - * 设置重试等待 - * - * @param delay 重试等待 - * @return this - */ - public ClipboardMonitor setDelay(final long delay) { - this.delay = delay; - return this; - } - /** * 设置 监听事件处理 * @@ -192,7 +164,6 @@ public enum ClipboardMonitor implements ClipboardOwner, Runnable, Closeable { for (int i = 0; i < this.tryCount; i++) { if (this.delay > 0 && i > 0) { // 第一次获取不等待,只有从第二次获取时才开始等待 - //noinspection BusyWait Thread.sleep(this.delay); } diff --git a/hutool-swing/src/main/java/cn/hutool/swing/clipboard/ClipboardUtil.java b/hutool-swing/src/main/java/cn/hutool/swing/clipboard/ClipboardUtil.java index 2b7108614..1644ace46 100755 --- a/hutool-swing/src/main/java/cn/hutool/swing/clipboard/ClipboardUtil.java +++ b/hutool-swing/src/main/java/cn/hutool/swing/clipboard/ClipboardUtil.java @@ -134,6 +134,7 @@ public class ClipboardUtil { return (Image) get(content, DataFlavor.imageFlavor); } + // region ----- listen /** * 监听剪贴板修改事件 * @@ -161,17 +162,27 @@ public class ClipboardUtil { * 监听剪贴板修改事件 * * @param tryCount 尝试获取剪贴板内容的次数 - * @param delay 响应延迟,当从第二次开始,延迟一定毫秒数等待剪贴板可以获取 + * @param delay 响应延迟,当从第二次开始,延迟一定毫秒数等待剪贴板可以获取,当tryCount小于2时无效 * @param listener 监听处理接口 * @param sync 是否同步阻塞 * @since 4.5.6 * @see ClipboardMonitor#listen(boolean) */ public static void listen(final int tryCount, final long delay, final ClipboardListener listener, final boolean sync) { - ClipboardMonitor.INSTANCE// - .setTryCount(tryCount)// - .setDelay(delay)// - .addListener(listener)// - .listen(sync); + getMonitor(tryCount, delay, listener).listen(sync); } + + /** + * 获取一个{@link ClipboardMonitor} + * @param tryCount 尝试获取剪贴板内容的次数 + * @param delay 响应延迟,当从第二次开始,延迟一定毫秒数等待剪贴板可以获取,当tryCount小于2时无效 + * @param listener 监听处理接口 + * @return {@link ClipboardMonitor} + */ + @SuppressWarnings("resource") + public static ClipboardMonitor getMonitor(final int tryCount, final long delay, final ClipboardListener listener){ + return new ClipboardMonitor(tryCount, delay, null) + .addListener(listener); + } + // endregion } diff --git a/hutool-swing/src/main/java/cn/hutool/swing/img/ImgUtil.java b/hutool-swing/src/main/java/cn/hutool/swing/img/ImgUtil.java index f4c81603c..fccd96d5a 100755 --- a/hutool-swing/src/main/java/cn/hutool/swing/img/ImgUtil.java +++ b/hutool-swing/src/main/java/cn/hutool/swing/img/ImgUtil.java @@ -1,6 +1,6 @@ package cn.hutool.swing.img; -import cn.hutool.core.codec.BaseN.Base64; +import cn.hutool.core.codec.binary.Base64; import cn.hutool.core.io.file.FileUtil; import cn.hutool.core.io.IORuntimeException; import cn.hutool.core.io.IoUtil;