From bf03aebcef576bd109e15a11367ec99304e850b5 Mon Sep 17 00:00:00 2001 From: Looly Date: Tue, 29 Oct 2019 19:05:23 +0800 Subject: [PATCH] fix code --- .../aop/interceptor/CglibInterceptor.java | 4 +- .../src/main/java/cn/hutool/cache/Cache.java | 8 -- .../cn/hutool/cache/file/LFUFileCache.java | 9 +- .../cn/hutool/cache/file/LRUFileCache.java | 9 +- .../java/cn/hutool/cache/impl/CacheObj.java | 2 +- .../hutool/cache/impl/CacheObjIterator.java | 1 - .../cache/impl/CacheValuesIterator.java | 1 - .../java/cn/hutool/cache/test/CacheTest.java | 26 ++--- .../captcha/generator/AbstractGenerator.java | 4 +- .../captcha/generator/MathGenerator.java | 3 +- .../java/cn/hutool/core/bean/BeanDesc.java | 10 +- .../cn/hutool/core/bean/BeanDescCache.java | 2 +- .../cn/hutool/core/bean/BeanInfoCache.java | 4 +- .../java/cn/hutool/core/bean/DynaBean.java | 10 +- .../hutool/core/bean/copier/BeanCopier.java | 8 +- .../copier/provider/BeanValueProvider.java | 4 +- .../copier/provider/MapValueProvider.java | 7 +- .../java/cn/hutool/core/codec/Caesar.java | 2 +- .../cn/hutool/core/collection/ArrayIter.java | 2 +- .../core/collection/BoundedPriorityQueue.java | 31 +++--- .../cn/hutool/core/collection/CollUtil.java | 2 +- .../hutool/core/comparator/CompareUtil.java | 2 +- .../core/comparator/PropertyComparator.java | 2 +- .../core/convert/AbstractConverter.java | 7 +- .../core/convert/impl/BeanConverter.java | 6 +- .../core/convert/impl/DateConverter.java | 7 +- .../core/convert/impl/DurationConverter.java | 1 - .../core/convert/impl/OptionalConverter.java | 1 - .../core/convert/impl/PeriodConverter.java | 1 - .../cn/hutool/core/date/BetweenFormater.java | 4 +- .../core/date/format/FastDateParser.java | 10 +- .../hutool/core/date/format/FormatCache.java | 5 +- .../OptNullBasicTypeFromObjectGetter.java | 3 - .../OptNullBasicTypeFromStringGetter.java | 3 - .../cn/hutool/core/io/BOMInputStream.java | 9 +- .../cn/hutool/core/io/IORuntimeException.java | 7 +- .../core/io/resource/BytesResource.java | 4 +- .../core/io/resource/ClassPathResource.java | 6 +- .../core/io/resource/NoResourceException.java | 7 +- .../cn/hutool/core/lang/ClassScanner.java | 32 +++---- .../core/lang/ParameterizedTypeImpl.java | 3 +- .../java/cn/hutool/core/lang/PatternPool.java | 17 ++-- .../main/java/cn/hutool/core/lang/Tuple.java | 5 +- .../java/cn/hutool/core/math/Arrangement.java | 3 +- .../java/cn/hutool/core/math/Combination.java | 40 ++++---- .../swing/clipboard/ClipboardMonitor.java | 4 +- .../java/cn/hutool/core/util/BooleanUtil.java | 2 +- .../cn/hutool/core/util/ClassLoaderUtil.java | 6 +- .../java/cn/hutool/core/util/URLUtil.java | 17 ++-- .../java/cn/hutool/core/clone/CloneTest.java | 22 +---- .../hutool/core/collection/CollUtilTest.java | 95 +++++-------------- .../cn/hutool/core/convert/ConvertTest.java | 2 - .../hutool/core/convert/DateConvertTest.java | 1 - .../cn/hutool/core/math/ArrangementTest.java | 2 +- .../cn/hutool/core/util/ClassUtilTest.java | 2 +- .../java/cn/hutool/core/util/URLUtilTest.java | 1 - .../java/cn/hutool/core/util/XmlUtilTest.java | 4 - .../cron/listener/SimpleTaskListener.java | 2 - .../matcher/BoolArrayValueMatcher.java | 2 +- .../java/cn/hutool/cron/task/InvokeTask.java | 11 +-- .../java/cn/hutool/cron/demo/TestJob.java | 1 + .../java/cn/hutool/crypto/SecureUtil.java | 40 ++++---- .../asymmetric/AsymmetricAlgorithm.java | 2 +- .../crypto/asymmetric/BaseAsymmetric.java | 2 +- .../java/cn/hutool/crypto/test/RSATest.java | 22 ++--- .../main/java/cn/hutool/db/AbstractDb.java | 2 +- .../main/java/cn/hutool/db/ActiveEntity.java | 2 +- .../hutool/db/ds/hikari/HikariDSFactory.java | 3 +- .../cn/hutool/db/handler/BeanHandler.java | 4 +- .../cn/hutool/db/handler/BeanListHandler.java | 6 +- .../main/java/cn/hutool/extra/ftp/Ftp.java | 13 +-- .../servlet/multipart/UploadSetting.java | 5 +- .../java/cn/hutool/extra/ssh/ChannelType.java | 2 +- .../java/cn/hutool/extra/ssh/JschUtil.java | 2 +- .../hutool/extra/template/TemplateConfig.java | 5 +- .../template/engine/beetl/BeetlEngine.java | 2 +- .../template/engine/beetl/BeetlTemplate.java | 2 +- .../template/engine/beetl/BeetlUtil.java | 2 +- .../template/engine/rythm/RythmEngine.java | 3 +- .../java/cn/hutool/extra/tokenizer/Word.java | 4 +- .../engine/analysis/AnalysisEngine.java | 2 +- .../engine/analysis/AnalysisResult.java | 2 +- .../engine/analysis/AnalysisWord.java | 5 +- .../tokenizer/engine/ansj/AnsjEngine.java | 2 +- .../tokenizer/engine/ansj/AnsjResult.java | 2 +- .../extra/tokenizer/engine/ansj/AnsjWord.java | 4 +- .../tokenizer/engine/hanlp/HanLPWord.java | 1 + .../engine/ikanalyzer/IKAnalyzerWord.java | 1 + .../tokenizer/engine/jcseg/JcsegWord.java | 4 +- .../tokenizer/engine/jieba/JiebaWord.java | 4 +- .../tokenizer/engine/mmseg/MmsegWord.java | 3 +- .../tokenizer/engine/mynlp/MynlpWord.java | 14 +-- .../extra/tokenizer/engine/word/WordWord.java | 3 +- .../cn/hutool/extra/ssh/JschUtilTest.java | 9 +- .../http/ssl/AndroidSupportSSLFactory.java | 2 +- .../hutool/http/useragent/UserAgentInfo.java | 9 +- .../main/java/cn/hutool/json/JSONNull.java | 13 +-- .../main/java/cn/hutool/json/JSONObject.java | 1 - .../src/main/java/cn/hutool/log/Log.java | 2 +- .../cn/hutool/log/dialect/jdk/JdkLog.java | 1 - .../java/cn/hutool/poi/excel/ExcelWriter.java | 6 +- .../cn/hutool/poi/excel/sax/CellDataType.java | 2 +- .../cn/hutool/poi/excel/sax/ExcelSaxUtil.java | 1 + .../cn/hutool/poi/excel/style/StyleUtil.java | 5 +- .../java/cn/hutool/socket/aio/AioClient.java | 2 +- .../java/cn/hutool/socket/aio/AioServer.java | 4 +- .../java/cn/hutool/socket/aio/AioSession.java | 4 +- 107 files changed, 283 insertions(+), 456 deletions(-) diff --git a/hutool-aop/src/main/java/cn/hutool/aop/interceptor/CglibInterceptor.java b/hutool-aop/src/main/java/cn/hutool/aop/interceptor/CglibInterceptor.java index d8b3ddaff..ad0bb09bc 100644 --- a/hutool-aop/src/main/java/cn/hutool/aop/interceptor/CglibInterceptor.java +++ b/hutool-aop/src/main/java/cn/hutool/aop/interceptor/CglibInterceptor.java @@ -16,8 +16,8 @@ import java.lang.reflect.Method; public class CglibInterceptor implements MethodInterceptor, Serializable { private static final long serialVersionUID = 1L; - private Object target; - private Aspect aspect; + private final Object target; + private final Aspect aspect; /** * 构造 diff --git a/hutool-cache/src/main/java/cn/hutool/cache/Cache.java b/hutool-cache/src/main/java/cn/hutool/cache/Cache.java index d9b23b29b..52bc97a83 100644 --- a/hutool-cache/src/main/java/cn/hutool/cache/Cache.java +++ b/hutool-cache/src/main/java/cn/hutool/cache/Cache.java @@ -83,14 +83,6 @@ public interface Cache extends Iterable, Serializable { */ V get(K key, boolean isUpdateLastAccess); - /** - * 返回缓存迭代器 - * - * @return 缓存迭代器 - */ - @Override - Iterator iterator(); - /** * 返回包含键和值得迭代器 * diff --git a/hutool-cache/src/main/java/cn/hutool/cache/file/LFUFileCache.java b/hutool-cache/src/main/java/cn/hutool/cache/file/LFUFileCache.java index 5bb225845..f3314cb0c 100644 --- a/hutool-cache/src/main/java/cn/hutool/cache/file/LFUFileCache.java +++ b/hutool-cache/src/main/java/cn/hutool/cache/file/LFUFileCache.java @@ -45,20 +45,19 @@ public class LFUFileCache extends AbstractFileCache{ @Override protected Cache initCache() { - Cache cache = new LFUCache(this.capacity, this.timeout) { - private static final long serialVersionUID = 1L; - + return new LFUCache(LFUFileCache.this.capacity, LFUFileCache.this.timeout) { + private static final long serialVersionUID1 = 1L; + @Override public boolean isFull() { return LFUFileCache.this.usedSize > this.capacity; } - + @Override protected void onRemove(File key, byte[] cachedObject) { usedSize -= cachedObject.length; } }; - return cache; } } diff --git a/hutool-cache/src/main/java/cn/hutool/cache/file/LRUFileCache.java b/hutool-cache/src/main/java/cn/hutool/cache/file/LRUFileCache.java index f8ca3ecf2..3c69f5266 100644 --- a/hutool-cache/src/main/java/cn/hutool/cache/file/LRUFileCache.java +++ b/hutool-cache/src/main/java/cn/hutool/cache/file/LRUFileCache.java @@ -45,20 +45,19 @@ public class LRUFileCache extends AbstractFileCache{ @Override protected Cache initCache() { - Cache cache = new LRUCache(this.capacity, super.timeout) { - private static final long serialVersionUID = 1L; - + return new LRUCache(LRUFileCache.this.capacity, super.timeout) { + private static final long serialVersionUID1 = 1L; + @Override public boolean isFull() { return LRUFileCache.this.usedSize > this.capacity; } - + @Override protected void onRemove(File key, byte[] cachedObject) { usedSize -= cachedObject.length; } }; - return cache; } } diff --git a/hutool-cache/src/main/java/cn/hutool/cache/impl/CacheObj.java b/hutool-cache/src/main/java/cn/hutool/cache/impl/CacheObj.java index e816d49c5..62a4cf2bd 100644 --- a/hutool-cache/src/main/java/cn/hutool/cache/impl/CacheObj.java +++ b/hutool-cache/src/main/java/cn/hutool/cache/impl/CacheObj.java @@ -20,7 +20,7 @@ public class CacheObj implements Serializable{ /** 访问次数 */ protected long accessCount; /** 对象存活时长,0表示永久存活*/ - private long ttl; + private final long ttl; /** * 构造 diff --git a/hutool-cache/src/main/java/cn/hutool/cache/impl/CacheObjIterator.java b/hutool-cache/src/main/java/cn/hutool/cache/impl/CacheObjIterator.java index e7f1f5759..3b7324a28 100644 --- a/hutool-cache/src/main/java/cn/hutool/cache/impl/CacheObjIterator.java +++ b/hutool-cache/src/main/java/cn/hutool/cache/impl/CacheObjIterator.java @@ -23,7 +23,6 @@ public class CacheObjIterator implements Iterator>, Seriali * 构造 * * @param iterator 原{@link Iterator} - * @param readLock 读锁 */ CacheObjIterator(Iterator> iterator) { this.iterator = iterator; diff --git a/hutool-cache/src/main/java/cn/hutool/cache/impl/CacheValuesIterator.java b/hutool-cache/src/main/java/cn/hutool/cache/impl/CacheValuesIterator.java index fcbbec048..f145cf3dd 100644 --- a/hutool-cache/src/main/java/cn/hutool/cache/impl/CacheValuesIterator.java +++ b/hutool-cache/src/main/java/cn/hutool/cache/impl/CacheValuesIterator.java @@ -17,7 +17,6 @@ public class CacheValuesIterator implements Iterator, Serializable { /** * 构造 * @param iterator 原{@link CacheObjIterator} - * @param readLock 读锁 */ CacheValuesIterator(CacheObjIterator iterator) { this.cacheObjIter = iterator; diff --git a/hutool-cache/src/test/java/cn/hutool/cache/test/CacheTest.java b/hutool-cache/src/test/java/cn/hutool/cache/test/CacheTest.java index c8720acd5..12ccbe74c 100644 --- a/hutool-cache/src/test/java/cn/hutool/cache/test/CacheTest.java +++ b/hutool-cache/src/test/java/cn/hutool/cache/test/CacheTest.java @@ -1,14 +1,12 @@ package cn.hutool.cache.test; -import org.junit.Assert; -import org.junit.Test; - import cn.hutool.cache.Cache; import cn.hutool.cache.CacheUtil; import cn.hutool.cache.impl.TimedCache; import cn.hutool.core.date.DateUnit; -import cn.hutool.core.lang.func.Func0; import cn.hutool.core.thread.ThreadUtil; +import org.junit.Assert; +import org.junit.Test; /** * 缓存测试用例 @@ -27,7 +25,7 @@ public class CacheTest { //由于缓存容量只有3,当加入第四个元素的时候,根据FIFO规则,最先放入的对象将被移除 String value1 = fifoCache.get("key1"); - Assert.assertTrue(null == value1); + Assert.assertNull(value1); } @Test @@ -44,9 +42,9 @@ public class CacheTest { String value1 = lfuCache.get("key1"); String value2 = lfuCache.get("key2"); String value3 = lfuCache.get("key3"); - Assert.assertTrue(null != value1); - Assert.assertTrue(null == value2); - Assert.assertTrue(null == value3); + Assert.assertNotNull(value1); + Assert.assertNull(value2); + Assert.assertNull(value3); } @Test @@ -84,21 +82,15 @@ public class CacheTest { //5毫秒后由于value2设置了5毫秒过期,因此只有value2被保留下来 String value1 = timedCache.get("key1"); - Assert.assertTrue(null == value1); + Assert.assertNull(value1); String value2 = timedCache.get("key2"); Assert.assertEquals("value2", value2); //5毫秒后,由于设置了默认过期,key3只被保留4毫秒,因此为null String value3 = timedCache.get("key3"); - Assert.assertTrue(null == value3); + Assert.assertNull(value3); - String value3Supplier = timedCache.get("key3", new Func0() { - - @Override - public String call() throws Exception { - return "Default supplier"; - } - }); + String value3Supplier = timedCache.get("key3", () -> "Default supplier"); Assert.assertEquals("Default supplier", value3Supplier); // 永不过期 diff --git a/hutool-captcha/src/main/java/cn/hutool/captcha/generator/AbstractGenerator.java b/hutool-captcha/src/main/java/cn/hutool/captcha/generator/AbstractGenerator.java index c9a6fff66..853fd6697 100644 --- a/hutool-captcha/src/main/java/cn/hutool/captcha/generator/AbstractGenerator.java +++ b/hutool-captcha/src/main/java/cn/hutool/captcha/generator/AbstractGenerator.java @@ -13,9 +13,9 @@ public abstract class AbstractGenerator implements CodeGenerator { private static final long serialVersionUID = 8685744597154953479L; /** 基础字符集合,用于随机获取字符串的字符集合 */ - protected String baseStr; + protected final String baseStr; /** 验证码长度 */ - protected int length; + protected final int length; /** * 构造,使用字母+数字做为基础 diff --git a/hutool-captcha/src/main/java/cn/hutool/captcha/generator/MathGenerator.java b/hutool-captcha/src/main/java/cn/hutool/captcha/generator/MathGenerator.java index 3c8c178de..2beb52194 100644 --- a/hutool-captcha/src/main/java/cn/hutool/captcha/generator/MathGenerator.java +++ b/hutool-captcha/src/main/java/cn/hutool/captcha/generator/MathGenerator.java @@ -42,12 +42,11 @@ public class MathGenerator implements CodeGenerator { number1 = StrUtil.padAfter(number1, this.numberLength, CharUtil.SPACE); number2 = StrUtil.padAfter(number2, this.numberLength, CharUtil.SPACE); - final String code = StrUtil.builder()// + return StrUtil.builder()// .append(number1)// .append(RandomUtil.randomChar(operators))// .append(number2)// .append('=').toString(); - return code; } @Override diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/BeanDesc.java b/hutool-core/src/main/java/cn/hutool/core/bean/BeanDesc.java index 2cd80ab54..86e79ce71 100644 --- a/hutool-core/src/main/java/cn/hutool/core/bean/BeanDesc.java +++ b/hutool-core/src/main/java/cn/hutool/core/bean/BeanDesc.java @@ -35,9 +35,9 @@ public class BeanDesc implements Serializable{ private static final long serialVersionUID = 1L; /** Bean类 */ - private Class beanClass; + private final Class beanClass; /** 属性Map */ - private Map propMap = new LinkedHashMap<>(); + private final Map propMap = new LinkedHashMap<>(); /** * 构造 @@ -300,11 +300,11 @@ public class BeanDesc implements Serializable{ public static class PropDesc { /** 字段 */ - private Field field; + private final Field field; /** Getter方法 */ - private Method getter; + private final Method getter; /** Setter方法 */ - private Method setter; + private final Method setter; /** * 构造
diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/BeanDescCache.java b/hutool-core/src/main/java/cn/hutool/core/bean/BeanDescCache.java index 4f2965e1a..c60999232 100644 --- a/hutool-core/src/main/java/cn/hutool/core/bean/BeanDescCache.java +++ b/hutool-core/src/main/java/cn/hutool/core/bean/BeanDescCache.java @@ -11,7 +11,7 @@ import cn.hutool.core.lang.SimpleCache; public enum BeanDescCache { INSTANCE; - private SimpleCache, BeanDesc> bdCache = new SimpleCache<>(); + private final SimpleCache, BeanDesc> bdCache = new SimpleCache<>(); /** * 获得属性名和{@link BeanDesc}Map映射 diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/BeanInfoCache.java b/hutool-core/src/main/java/cn/hutool/core/bean/BeanInfoCache.java index a4a0d5f7f..95d9bb324 100644 --- a/hutool-core/src/main/java/cn/hutool/core/bean/BeanInfoCache.java +++ b/hutool-core/src/main/java/cn/hutool/core/bean/BeanInfoCache.java @@ -14,8 +14,8 @@ import cn.hutool.core.lang.SimpleCache; public enum BeanInfoCache { INSTANCE; - private SimpleCache, Map> pdCache = new SimpleCache<>(); - private SimpleCache, Map> ignoreCasePdCache = new SimpleCache<>(); + private final SimpleCache, Map> pdCache = new SimpleCache<>(); + private final SimpleCache, Map> ignoreCasePdCache = new SimpleCache<>(); /** * 获得属性名和{@link PropertyDescriptor}Map映射 diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/DynaBean.java b/hutool-core/src/main/java/cn/hutool/core/bean/DynaBean.java index e106ab160..915e60e05 100644 --- a/hutool-core/src/main/java/cn/hutool/core/bean/DynaBean.java +++ b/hutool-core/src/main/java/cn/hutool/core/bean/DynaBean.java @@ -114,7 +114,6 @@ public class DynaBean extends CloneSupport implements Serializable{ public void set(String fieldName, Object value) throws BeanException{ if(Map.class.isAssignableFrom(beanClass)){ ((Map)bean).put(fieldName, value); - return; }else{ try { final Method setter = BeanUtil.getBeanDesc(beanClass).getSetter(fieldName); @@ -179,13 +178,8 @@ public class DynaBean extends CloneSupport implements Serializable{ } final DynaBean other = (DynaBean) obj; if (bean == null) { - if (other.bean != null) { - return false; - } - } else if (!bean.equals(other.bean)) { - return false; - } - return true; + return other.bean == null; + } else return bean.equals(other.bean); } @Override diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/copier/BeanCopier.java b/hutool-core/src/main/java/cn/hutool/core/bean/copier/BeanCopier.java index 0e7735228..3d477dbc8 100644 --- a/hutool-core/src/main/java/cn/hutool/core/bean/copier/BeanCopier.java +++ b/hutool-core/src/main/java/cn/hutool/core/bean/copier/BeanCopier.java @@ -36,13 +36,13 @@ public class BeanCopier implements Copier, Serializable { private static final long serialVersionUID = 1L; /** 源对象 */ - private Object source; + private final Object source; /** 目标对象 */ - private T dest; + private final T dest; /** 目标的类型(用于泛型类注入) */ - private Type destType; + private final Type destType; /** 拷贝选项 */ - private CopyOptions copyOptions; + private final CopyOptions copyOptions; /** * 创建BeanCopier diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/copier/provider/BeanValueProvider.java b/hutool-core/src/main/java/cn/hutool/core/bean/copier/provider/BeanValueProvider.java index 1a464e7f0..762b4defa 100644 --- a/hutool-core/src/main/java/cn/hutool/core/bean/copier/provider/BeanValueProvider.java +++ b/hutool-core/src/main/java/cn/hutool/core/bean/copier/provider/BeanValueProvider.java @@ -18,8 +18,8 @@ import cn.hutool.core.util.StrUtil; */ public class BeanValueProvider implements ValueProvider { - private Object source; - private boolean ignoreError; + private final Object source; + private final boolean ignoreError; final Map sourcePdMap; /** diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/copier/provider/MapValueProvider.java b/hutool-core/src/main/java/cn/hutool/core/bean/copier/provider/MapValueProvider.java index 4a9c74b6f..0e482d01d 100644 --- a/hutool-core/src/main/java/cn/hutool/core/bean/copier/provider/MapValueProvider.java +++ b/hutool-core/src/main/java/cn/hutool/core/bean/copier/provider/MapValueProvider.java @@ -47,13 +47,12 @@ public class MapValueProvider implements ValueProvider { @Override public boolean containsKey(String key) { + //检查下划线模式 if(map.containsKey(key)) { return true; - }else if(map.containsKey(StrUtil.toUnderlineCase(key))) { - //检查下划线模式 - return true; + }else { + return map.containsKey(StrUtil.toUnderlineCase(key)); } - return false; } } diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/Caesar.java b/hutool-core/src/main/java/cn/hutool/core/codec/Caesar.java index bc8b79520..21e589db7 100644 --- a/hutool-core/src/main/java/cn/hutool/core/codec/Caesar.java +++ b/hutool-core/src/main/java/cn/hutool/core/codec/Caesar.java @@ -9,7 +9,7 @@ package cn.hutool.core.codec; public class Caesar { // 26个字母表 - public static String table = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"; + public static final String table = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"; /** * 传入明文,加密得到密文 diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/ArrayIter.java b/hutool-core/src/main/java/cn/hutool/core/collection/ArrayIter.java index 87c35ac1d..46c5135bf 100644 --- a/hutool-core/src/main/java/cn/hutool/core/collection/ArrayIter.java +++ b/hutool-core/src/main/java/cn/hutool/core/collection/ArrayIter.java @@ -16,7 +16,7 @@ public class ArrayIter implements Iterator, Iterable, Serializable{ private static final long serialVersionUID = 1L; /** 数组 */ - private Object array; + private final Object array; /** 起始位置 */ private int startIndex; /** 结束位置 */ diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/BoundedPriorityQueue.java b/hutool-core/src/main/java/cn/hutool/core/collection/BoundedPriorityQueue.java index fe09249d9..c62c93709 100644 --- a/hutool-core/src/main/java/cn/hutool/core/collection/BoundedPriorityQueue.java +++ b/hutool-core/src/main/java/cn/hutool/core/collection/BoundedPriorityQueue.java @@ -18,8 +18,8 @@ public class BoundedPriorityQueue extends PriorityQueue{ private static final long serialVersionUID = 3794348988671694820L; //容量 - private int capacity; - private Comparator comparator; + private final int capacity; + private final Comparator comparator; public BoundedPriorityQueue(int capacity) { this(capacity, null); @@ -31,22 +31,17 @@ public class BoundedPriorityQueue extends PriorityQueue{ * @param comparator 比较器 */ public BoundedPriorityQueue(int capacity, final Comparator comparator) { - super(capacity, new Comparator(){ - - @Override - public int compare(E o1, E o2) { - int cResult; - if(comparator != null) { - cResult = comparator.compare(o1, o2); - }else { - @SuppressWarnings("unchecked") - Comparable o1c = (Comparable)o1; - cResult = o1c.compareTo(o2); - } - - return - cResult; + super(capacity, (o1, o2) -> { + int cResult; + if(comparator != null) { + cResult = comparator.compare(o1, o2); + }else { + @SuppressWarnings("unchecked") + Comparable o1c = (Comparable)o1; + cResult = o1c.compareTo(o2); } - + + return - cResult; }); this.capacity = capacity; this.comparator = comparator; @@ -84,7 +79,7 @@ public class BoundedPriorityQueue extends PriorityQueue{ * @return 返回排序后的列表 */ public ArrayList toList() { - final ArrayList list = new ArrayList(this); + final ArrayList list = new ArrayList<>(this); Collections.sort(list, comparator); return list; } diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/CollUtil.java b/hutool-core/src/main/java/cn/hutool/core/collection/CollUtil.java index 5264baaf5..bb837e750 100644 --- a/hutool-core/src/main/java/cn/hutool/core/collection/CollUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/collection/CollUtil.java @@ -2366,7 +2366,7 @@ public class CollUtil { */ public static List> groupByField(Collection collection, final String fieldName) { return group(collection, new Hash() { - private List fieldNameList = new ArrayList<>(); + private final List fieldNameList = new ArrayList<>(); @Override public int hash(T t) { diff --git a/hutool-core/src/main/java/cn/hutool/core/comparator/CompareUtil.java b/hutool-core/src/main/java/cn/hutool/core/comparator/CompareUtil.java index 4b29de811..3795eec52 100644 --- a/hutool-core/src/main/java/cn/hutool/core/comparator/CompareUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/comparator/CompareUtil.java @@ -19,7 +19,7 @@ public class CompareUtil { * @see java.util.Comparator#compare(Object, Object) * @since 4.6.9 */ - @SuppressWarnings("rawtypes") + @SuppressWarnings({"rawtypes", "unchecked"}) public static int compare(T c1, T c2, Comparator comparator) { if (null == comparator) { return compare((Comparable)c1, (Comparable)c2); diff --git a/hutool-core/src/main/java/cn/hutool/core/comparator/PropertyComparator.java b/hutool-core/src/main/java/cn/hutool/core/comparator/PropertyComparator.java index 43b701937..73ce5d25c 100644 --- a/hutool-core/src/main/java/cn/hutool/core/comparator/PropertyComparator.java +++ b/hutool-core/src/main/java/cn/hutool/core/comparator/PropertyComparator.java @@ -62,7 +62,7 @@ public class PropertyComparator implements Comparator, Serializable { return compare(o1, o2, v1, v2); } - @SuppressWarnings({ "rawtypes"}) + @SuppressWarnings({"rawtypes", "unchecked"}) private int compare(T o1, T o2, Comparable fieldValue1, Comparable fieldValue2) { int result = ObjectUtil.compare(fieldValue1, fieldValue2, isNullGreater); if(0 == result) { diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/AbstractConverter.java b/hutool-core/src/main/java/cn/hutool/core/convert/AbstractConverter.java index c3742515f..a6e5f5a9e 100644 --- a/hutool-core/src/main/java/cn/hutool/core/convert/AbstractConverter.java +++ b/hutool-core/src/main/java/cn/hutool/core/convert/AbstractConverter.java @@ -1,14 +1,13 @@ package cn.hutool.core.convert; -import java.io.Serializable; -import java.util.Map; - -import cn.hutool.core.lang.Console; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.CharUtil; import cn.hutool.core.util.ClassUtil; import cn.hutool.core.util.StrUtil; +import java.io.Serializable; +import java.util.Map; + /** * 抽象转换器,提供通用的转换逻辑,同时通过convertInternal实现对应类型的专属逻辑
* 转换器不会抛出转换异常,转换失败时会返回{@code null} diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/impl/BeanConverter.java b/hutool-core/src/main/java/cn/hutool/core/convert/impl/BeanConverter.java index 91d0de532..3ec58fc6c 100644 --- a/hutool-core/src/main/java/cn/hutool/core/convert/impl/BeanConverter.java +++ b/hutool-core/src/main/java/cn/hutool/core/convert/impl/BeanConverter.java @@ -27,9 +27,9 @@ import cn.hutool.core.util.TypeUtil; public class BeanConverter extends AbstractConverter { private static final long serialVersionUID = 1L; - private Type beanType; - private Class beanClass; - private CopyOptions copyOptions; + private final Type beanType; + private final Class beanClass; + private final CopyOptions copyOptions; /** * 构造,默认转换选项,注入失败的字段忽略 diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/impl/DateConverter.java b/hutool-core/src/main/java/cn/hutool/core/convert/impl/DateConverter.java index 883e529ae..8becb5e4a 100644 --- a/hutool-core/src/main/java/cn/hutool/core/convert/impl/DateConverter.java +++ b/hutool-core/src/main/java/cn/hutool/core/convert/impl/DateConverter.java @@ -1,14 +1,13 @@ package cn.hutool.core.convert.impl; -import java.time.temporal.TemporalAccessor; -import java.util.Calendar; - import cn.hutool.core.convert.AbstractConverter; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.lang.Console; import cn.hutool.core.util.StrUtil; +import java.time.temporal.TemporalAccessor; +import java.util.Calendar; + /** * 日期转换器 * diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/impl/DurationConverter.java b/hutool-core/src/main/java/cn/hutool/core/convert/impl/DurationConverter.java index 972a89dca..766a73dcf 100644 --- a/hutool-core/src/main/java/cn/hutool/core/convert/impl/DurationConverter.java +++ b/hutool-core/src/main/java/cn/hutool/core/convert/impl/DurationConverter.java @@ -3,7 +3,6 @@ package cn.hutool.core.convert.impl; import cn.hutool.core.convert.AbstractConverter; import java.time.Duration; -import java.time.Period; import java.time.temporal.TemporalAmount; /** diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/impl/OptionalConverter.java b/hutool-core/src/main/java/cn/hutool/core/convert/impl/OptionalConverter.java index ffeeacfcc..aed9e50ce 100644 --- a/hutool-core/src/main/java/cn/hutool/core/convert/impl/OptionalConverter.java +++ b/hutool-core/src/main/java/cn/hutool/core/convert/impl/OptionalConverter.java @@ -2,7 +2,6 @@ package cn.hutool.core.convert.impl; import cn.hutool.core.convert.AbstractConverter; -import java.time.Period; import java.util.Optional; /** diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/impl/PeriodConverter.java b/hutool-core/src/main/java/cn/hutool/core/convert/impl/PeriodConverter.java index 3dd3224ba..404ce813b 100644 --- a/hutool-core/src/main/java/cn/hutool/core/convert/impl/PeriodConverter.java +++ b/hutool-core/src/main/java/cn/hutool/core/convert/impl/PeriodConverter.java @@ -4,7 +4,6 @@ import cn.hutool.core.convert.AbstractConverter; import java.time.Period; import java.time.temporal.TemporalAmount; -import java.util.Optional; /** * diff --git a/hutool-core/src/main/java/cn/hutool/core/date/BetweenFormater.java b/hutool-core/src/main/java/cn/hutool/core/date/BetweenFormater.java index a2b0c0940..64bc7a5ee 100644 --- a/hutool-core/src/main/java/cn/hutool/core/date/BetweenFormater.java +++ b/hutool-core/src/main/java/cn/hutool/core/date/BetweenFormater.java @@ -17,7 +17,7 @@ public class BetweenFormater implements Serializable{ /** 格式化级别 */ private Level level; /** 格式化级别的最大个数 */ - private int levelMaxCount; + private final int levelMaxCount; /** * 构造 @@ -137,7 +137,7 @@ public class BetweenFormater implements Serializable{ MILLSECOND("毫秒"); /** 级别名称 */ - private String name; + private final String name; /** * 构造 diff --git a/hutool-core/src/main/java/cn/hutool/core/date/format/FastDateParser.java b/hutool-core/src/main/java/cn/hutool/core/date/format/FastDateParser.java index 81029559f..c50630bee 100644 --- a/hutool-core/src/main/java/cn/hutool/core/date/format/FastDateParser.java +++ b/hutool-core/src/main/java/cn/hutool/core/date/format/FastDateParser.java @@ -44,12 +44,7 @@ class FastDateParser extends AbstractDateBasic implements DateParser { // comparator used to sort regex alternatives // alternatives should be ordered longer first, and shorter last. ('february' before 'feb') // all entries must be lowercase by locale. - private static final Comparator LONGER_FIRST_LOWERCASE = new Comparator(){ - @Override - public int compare(final String left, final String right) { - return right.compareTo(left); - } - }; + private static final Comparator LONGER_FIRST_LOWERCASE = (left, right) -> right.compareTo(left); /** *

@@ -389,7 +384,8 @@ class FastDateParser extends AbstractDateBasic implements DateParser { /** * Obtain a Strategy given a field from a SimpleDateFormat pattern * - * @param formatField A sub-sequence of the SimpleDateFormat pattern + * @param f 格式 + * @param width 长度 * @param definingCalendar The calendar to obtain the short and long values * @return The Strategy that will handle parsing for the field */ diff --git a/hutool-core/src/main/java/cn/hutool/core/date/format/FormatCache.java b/hutool-core/src/main/java/cn/hutool/core/date/format/FormatCache.java index cbdfd4781..c6d344e15 100644 --- a/hutool-core/src/main/java/cn/hutool/core/date/format/FormatCache.java +++ b/hutool-core/src/main/java/cn/hutool/core/date/format/FormatCache.java @@ -223,10 +223,7 @@ abstract class FormatCache { return false; } final MultipartKey other = (MultipartKey) obj; - if (false == Arrays.equals(keys, other.keys)) { - return false; - } - return true; + return false != Arrays.equals(keys, other.keys); } diff --git a/hutool-core/src/main/java/cn/hutool/core/getter/OptNullBasicTypeFromObjectGetter.java b/hutool-core/src/main/java/cn/hutool/core/getter/OptNullBasicTypeFromObjectGetter.java index 07cdcbc90..a693ca8c8 100644 --- a/hutool-core/src/main/java/cn/hutool/core/getter/OptNullBasicTypeFromObjectGetter.java +++ b/hutool-core/src/main/java/cn/hutool/core/getter/OptNullBasicTypeFromObjectGetter.java @@ -14,9 +14,6 @@ import cn.hutool.core.convert.Convert; */ public abstract class OptNullBasicTypeFromObjectGetter extends OptNullBasicTypeGetter{ - @Override - public abstract Object getObj(K key, Object defaultValue); - @Override public String getStr(K key, String defaultValue) { final Object obj = getObj(key); diff --git a/hutool-core/src/main/java/cn/hutool/core/getter/OptNullBasicTypeFromStringGetter.java b/hutool-core/src/main/java/cn/hutool/core/getter/OptNullBasicTypeFromStringGetter.java index b8d6aedad..13e6eecd4 100644 --- a/hutool-core/src/main/java/cn/hutool/core/getter/OptNullBasicTypeFromStringGetter.java +++ b/hutool-core/src/main/java/cn/hutool/core/getter/OptNullBasicTypeFromStringGetter.java @@ -14,9 +14,6 @@ import cn.hutool.core.convert.Convert; */ public abstract class OptNullBasicTypeFromStringGetter extends OptNullBasicTypeGetter { - @Override - public abstract String getStr(K key, String defaultValue); - @Override public Object getObj(K key, Object defaultValue) { return getStr(key, null == defaultValue ? null : defaultValue.toString()); diff --git a/hutool-core/src/main/java/cn/hutool/core/io/BOMInputStream.java b/hutool-core/src/main/java/cn/hutool/core/io/BOMInputStream.java index d9b7ef49f..6953ec9b7 100644 --- a/hutool-core/src/main/java/cn/hutool/core/io/BOMInputStream.java +++ b/hutool-core/src/main/java/cn/hutool/core/io/BOMInputStream.java @@ -27,10 +27,11 @@ import cn.hutool.core.util.CharsetUtil; * 参考: http://akini.mbnet.fi/java/unicodereader/UnicodeInputStream.java.txt */ public class BOMInputStream extends InputStream { - PushbackInputStream in; - boolean isInited = false; - String defaultCharset; - String charset; + + private final PushbackInputStream in; + private boolean isInited = false; + private final String defaultCharset; + private String charset; private static final int BOM_SIZE = 4; diff --git a/hutool-core/src/main/java/cn/hutool/core/io/IORuntimeException.java b/hutool-core/src/main/java/cn/hutool/core/io/IORuntimeException.java index cf5713113..160774dbc 100644 --- a/hutool-core/src/main/java/cn/hutool/core/io/IORuntimeException.java +++ b/hutool-core/src/main/java/cn/hutool/core/io/IORuntimeException.java @@ -38,10 +38,7 @@ public class IORuntimeException extends RuntimeException { * @return 是否为指定类型异常 */ public boolean causeInstanceOf(Class clazz) { - Throwable cause = this.getCause(); - if (null != cause && clazz.isInstance(cause)) { - return true; - } - return false; + final Throwable cause = this.getCause(); + return null != clazz && clazz.isInstance(cause); } } diff --git a/hutool-core/src/main/java/cn/hutool/core/io/resource/BytesResource.java b/hutool-core/src/main/java/cn/hutool/core/io/resource/BytesResource.java index 0cba52088..c350d9943 100644 --- a/hutool-core/src/main/java/cn/hutool/core/io/resource/BytesResource.java +++ b/hutool-core/src/main/java/cn/hutool/core/io/resource/BytesResource.java @@ -22,8 +22,8 @@ import cn.hutool.core.util.StrUtil; public class BytesResource implements Resource, Serializable { private static final long serialVersionUID = 1L; - private byte[] bytes; - private String name; + private final byte[] bytes; + private final String name; /** * 构造 diff --git a/hutool-core/src/main/java/cn/hutool/core/io/resource/ClassPathResource.java b/hutool-core/src/main/java/cn/hutool/core/io/resource/ClassPathResource.java index 744ada561..cecd96a6c 100644 --- a/hutool-core/src/main/java/cn/hutool/core/io/resource/ClassPathResource.java +++ b/hutool-core/src/main/java/cn/hutool/core/io/resource/ClassPathResource.java @@ -20,9 +20,9 @@ import cn.hutool.core.util.URLUtil; public class ClassPathResource extends UrlResource { private static final long serialVersionUID = 1L; - private String path; - private ClassLoader classLoader; - private Class clazz; + private final String path; + private final ClassLoader classLoader; + private final Class clazz; // -------------------------------------------------------------------------------------- Constructor start /** diff --git a/hutool-core/src/main/java/cn/hutool/core/io/resource/NoResourceException.java b/hutool-core/src/main/java/cn/hutool/core/io/resource/NoResourceException.java index 66362373f..9e82a3ec3 100644 --- a/hutool-core/src/main/java/cn/hutool/core/io/resource/NoResourceException.java +++ b/hutool-core/src/main/java/cn/hutool/core/io/resource/NoResourceException.java @@ -40,10 +40,7 @@ public class NoResourceException extends IORuntimeException { * @return 是否为指定类型异常 */ public boolean causeInstanceOf(Class clazz) { - Throwable cause = this.getCause(); - if (clazz.isInstance(cause)) { - return true; - } - return false; + final Throwable cause = this.getCause(); + return clazz.isInstance(cause); } } diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/ClassScanner.java b/hutool-core/src/main/java/cn/hutool/core/lang/ClassScanner.java index 533436a62..e0f77fc86 100644 --- a/hutool-core/src/main/java/cn/hutool/core/lang/ClassScanner.java +++ b/hutool-core/src/main/java/cn/hutool/core/lang/ClassScanner.java @@ -31,27 +31,27 @@ public class ClassScanner implements Serializable { /** * 包名 */ - private String packageName; + private final String packageName; /** * 包名,最后跟一个点,表示包名,避免在检查前缀时的歧义 */ - private String packageNameWithDot; + private final String packageNameWithDot; /** * 包路径,用于文件中对路径操作 */ - private String packageDirName; + private final String packageDirName; /** * 包路径,用于jar中对路径操作,在Linux下与packageDirName一致 */ - private String packagePath; + private final String packagePath; /** * 过滤器 */ - private Filter> classFilter; + private final Filter> classFilter; /** * 编码 */ - private Charset charset; + private final Charset charset; /** * 类加载器 */ @@ -60,8 +60,10 @@ public class ClassScanner implements Serializable { * 是否初始化类 */ private boolean initialize; - - private Set> classes = new HashSet<>(); + /** + * 扫描结果集 + */ + private final Set> classes = new HashSet<>(); /** * 扫描指定包路径下所有包含指定注解的类 @@ -71,12 +73,7 @@ public class ClassScanner implements Serializable { * @return 类集合 */ public static Set> scanPackageByAnnotation(String packageName, final Class annotationClass) { - return scanPackage(packageName, new Filter>() { - @Override - public boolean accept(Class clazz) { - return clazz.isAnnotationPresent(annotationClass); - } - }); + return scanPackage(packageName, clazz -> clazz.isAnnotationPresent(annotationClass)); } /** @@ -87,12 +84,7 @@ public class ClassScanner implements Serializable { * @return 类集合 */ public static Set> scanPackageBySuper(String packageName, final Class superClass) { - return scanPackage(packageName, new Filter>() { - @Override - public boolean accept(Class clazz) { - return superClass.isAssignableFrom(clazz) && !superClass.equals(clazz); - } - }); + return scanPackage(packageName, clazz -> superClass.isAssignableFrom(clazz) && !superClass.equals(clazz)); } /** diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/ParameterizedTypeImpl.java b/hutool-core/src/main/java/cn/hutool/core/lang/ParameterizedTypeImpl.java index 07d746132..54c9293e7 100644 --- a/hutool-core/src/main/java/cn/hutool/core/lang/ParameterizedTypeImpl.java +++ b/hutool-core/src/main/java/cn/hutool/core/lang/ParameterizedTypeImpl.java @@ -54,7 +54,6 @@ public class ParameterizedTypeImpl implements ParameterizedType, Serializable { final Type useOwner = this.ownerType; final Class raw = (Class) this.rawType; - final Type[] typeArguments = this.actualTypeArguments; if (useOwner == null) { buf.append(raw.getName()); } else { @@ -66,7 +65,7 @@ public class ParameterizedTypeImpl implements ParameterizedType, Serializable { buf.append('.').append(raw.getSimpleName()); } - appendAllTo(buf.append('<'), ", ", typeArguments).append('>'); + appendAllTo(buf.append('<'), ", ", this.actualTypeArguments).append('>'); return buf.toString(); } diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/PatternPool.java b/hutool-core/src/main/java/cn/hutool/core/lang/PatternPool.java index 507325738..a49b9249d 100644 --- a/hutool-core/src/main/java/cn/hutool/core/lang/PatternPool.java +++ b/hutool-core/src/main/java/cn/hutool/core/lang/PatternPool.java @@ -27,20 +27,20 @@ public class PatternPool { /** IP v4 */ public final static Pattern IPV4 = Pattern.compile("\\b((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\b"); /** IP v6 */ - public final static Pattern IPV6 = Pattern.compile("(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))"); + public final static Pattern IPV6 = Pattern.compile("(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9]))"); /** 货币 */ public final static Pattern MONEY = Pattern.compile("^(\\d+(?:\\.\\d+)?)$"); /** 邮件,符合RFC 5322规范,正则来自:http://emailregex.com/ */ // public final static Pattern EMAIL = Pattern.compile("(\\w|.)+@\\w+(\\.\\w+){1,2}"); - public final static Pattern EMAIL = Pattern.compile("(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])", Pattern.CASE_INSENSITIVE); + public final static Pattern EMAIL = Pattern.compile("(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)])", Pattern.CASE_INSENSITIVE); /** 移动电话 */ public final static Pattern MOBILE = Pattern.compile("(?:0|86|\\+86)?1[3456789]\\d{9}"); /** 18位身份证号码 */ - public final static Pattern CITIZEN_ID = Pattern.compile("[1-9]\\d{5}[1-2]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}(\\d|X|x)"); + public final static Pattern CITIZEN_ID = Pattern.compile("[1-9]\\d{5}[1-2]\\d{3}((0\\d)|(1[0-2]))(([012]\\d)|3[0-1])\\d{3}(\\d|X|x)"); /** 邮编 */ public final static Pattern ZIP_CODE = Pattern.compile("[1-9]\\d{5}(?!\\d)"); /** 生日 */ - public final static Pattern BIRTHDAY = Pattern.compile("^(\\d{2,4})([/\\-\\.年]?)(\\d{1,2})([/\\-\\.月]?)(\\d{1,2})日?$"); + public final static Pattern BIRTHDAY = Pattern.compile("^(\\d{2,4})([/\\-.年]?)(\\d{1,2})([/\\-.月]?)(\\d{1,2})日?$"); /** URL */ public final static Pattern URL = Pattern.compile("[a-zA-z]+://[^\\s]*"); /** Http URL */ @@ -157,13 +157,10 @@ public class PatternPool { return false; } if (regex == null) { - if (other.regex != null) { - return false; - } - } else if (!regex.equals(other.regex)) { - return false; + return other.regex == null; + } else { + return regex.equals(other.regex); } - return true; } } diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Tuple.java b/hutool-core/src/main/java/cn/hutool/core/lang/Tuple.java index 83a005f94..95443af54 100644 --- a/hutool-core/src/main/java/cn/hutool/core/lang/Tuple.java +++ b/hutool-core/src/main/java/cn/hutool/core/lang/Tuple.java @@ -66,10 +66,7 @@ public class Tuple extends CloneSupport implements Iterable, Seri return false; } Tuple other = (Tuple) obj; - if (false == Arrays.deepEquals(members, other.members)) { - return false; - } - return true; + return false != Arrays.deepEquals(members, other.members); } @Override diff --git a/hutool-core/src/main/java/cn/hutool/core/math/Arrangement.java b/hutool-core/src/main/java/cn/hutool/core/math/Arrangement.java index 3fbe44425..290d1b1c2 100644 --- a/hutool-core/src/main/java/cn/hutool/core/math/Arrangement.java +++ b/hutool-core/src/main/java/cn/hutool/core/math/Arrangement.java @@ -18,7 +18,7 @@ import cn.hutool.core.util.NumberUtil; public class Arrangement implements Serializable { private static final long serialVersionUID = 1L; - private String[] datas; + private final String[] datas; /** * 构造 @@ -106,7 +106,6 @@ public class Arrangement implements Serializable { * 排列方式为先从数据数组中取出一个元素,再把剩余的元素作为新的基数,依次列推,直到选择到足够的元素 * * @param datas 选择的基数 - * @param dataList 待选列表 * @param resultList 前面(resultIndex-1)个的排列结果 * @param resultIndex 选择索引,从0开始 * @param result 最终结果 diff --git a/hutool-core/src/main/java/cn/hutool/core/math/Combination.java b/hutool-core/src/main/java/cn/hutool/core/math/Combination.java index 7aa7d9136..59dffab67 100644 --- a/hutool-core/src/main/java/cn/hutool/core/math/Combination.java +++ b/hutool-core/src/main/java/cn/hutool/core/math/Combination.java @@ -10,19 +10,19 @@ import cn.hutool.core.util.NumberUtil; /** * 组合,即C(n, m)
* 排列组合相关类 参考:http://cgs1999.iteye.com/blog/2327664 - * + * * @author looly * @since 4.0.6 */ -public class Combination implements Serializable{ +public class Combination implements Serializable { private static final long serialVersionUID = 1L; - private String[] datas; + private final String[] datas; /** * 组合,即C(n, m)
* 排列组合相关类 参考:http://cgs1999.iteye.com/blog/2327664 - * + * * @param datas 用于组合的数据 */ public Combination(String[] datas) { @@ -31,30 +31,30 @@ public class Combination implements Serializable{ /** * 计算组合数,即C(n, m) = n!/((n-m)! * m!) - * + * * @param n 总数 * @param m 选择的个数 * @return 组合数 */ public static long count(int n, int m) { - if(0 == m) { + if (0 == m) { return 1; } - if(n == m) { + if (n == m) { return NumberUtil.factorial(n) / NumberUtil.factorial(m); } return (n > m) ? NumberUtil.factorial(n, n - m) / NumberUtil.factorial(m) : 0; } - + /** * 计算组合总数,即C(n, 1) + C(n, 2) + C(n, 3)... - * + * * @param n 总数 * @return 组合数 */ public static long countAll(int n) { long total = 0; - for(int i = 1; i <= n; i++) { + for (int i = 1; i <= n; i++) { total += count(n, i); } return total; @@ -62,7 +62,7 @@ public class Combination implements Serializable{ /** * 组合选择(从列表中选择m个组合) - * + * * @param m 选择个数 * @return 组合结果 */ @@ -71,15 +71,15 @@ public class Combination implements Serializable{ select(0, new String[m], 0, result); return result; } - + /** * 全组合 - * + * * @return 全排列结果 */ - public List selectAll(){ - final List result = new ArrayList<>((int)countAll(this.datas.length)); - for(int i = 1; i <= this.datas.length; i++) { + public List selectAll() { + final List result = new ArrayList<>((int) countAll(this.datas.length)); + for (int i = 1; i <= this.datas.length; i++) { result.addAll(select(i)); } return result; @@ -87,11 +87,11 @@ public class Combination implements Serializable{ /** * 组合选择 - * - * @param dataList 待选列表 - * @param dataIndex 待选开始索引 - * @param resultList 前面(resultIndex-1)个的组合结果 + * + * @param dataIndex 待选开始索引 + * @param resultList 前面(resultIndex-1)个的组合结果 * @param resultIndex 选择索引,从0开始 + * @param result 结果集 */ private void select(int dataIndex, String[] resultList, int resultIndex, List result) { int resultLen = resultList.length; diff --git a/hutool-core/src/main/java/cn/hutool/core/swing/clipboard/ClipboardMonitor.java b/hutool-core/src/main/java/cn/hutool/core/swing/clipboard/ClipboardMonitor.java index b9aaad6f2..b24d899b6 100644 --- a/hutool-core/src/main/java/cn/hutool/core/swing/clipboard/ClipboardMonitor.java +++ b/hutool-core/src/main/java/cn/hutool/core/swing/clipboard/ClipboardMonitor.java @@ -29,9 +29,9 @@ public enum ClipboardMonitor implements ClipboardOwner, Runnable, Closeable { /** 重试等待 */ private long delay; /** 系统剪贴板对象 */ - private Clipboard clipboard; + private final Clipboard clipboard; /** 监听事件处理 */ - private Set listenerSet = new LinkedHashSet<>(); + private final Set listenerSet = new LinkedHashSet<>(); /** 是否正在监听 */ private boolean isRunning; diff --git a/hutool-core/src/main/java/cn/hutool/core/util/BooleanUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/BooleanUtil.java index f27d0909a..ac6ed3340 100644 --- a/hutool-core/src/main/java/cn/hutool/core/util/BooleanUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/util/BooleanUtil.java @@ -65,7 +65,7 @@ public class BooleanUtil { * @return 相反的Boolean值 */ public static boolean negate(boolean bool) { - return bool ? false : true; + return !bool; } /** diff --git a/hutool-core/src/main/java/cn/hutool/core/util/ClassLoaderUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/ClassLoaderUtil.java index f0dd330ca..a7fcfd72d 100644 --- a/hutool-core/src/main/java/cn/hutool/core/util/ClassLoaderUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/util/ClassLoaderUtil.java @@ -33,11 +33,11 @@ public class ClassLoaderUtil { private static final char INNER_CLASS_SEPARATOR = '$'; /** 原始类型名和其class对应表,例如:int =》 int.class */ - private static final Map> primitiveTypeNameMap = new ConcurrentHashMap>(32); - private static SimpleCache> classCache = new SimpleCache<>(); + private static final Map> primitiveTypeNameMap = new ConcurrentHashMap<>(32); + private static final SimpleCache> classCache = new SimpleCache<>(); static { - List> primitiveTypes = new ArrayList>(32); + List> primitiveTypes = new ArrayList<>(32); // 加入原始类型 primitiveTypes.addAll(BasicType.primitiveWrapperMap.keySet()); // 加入原始类型数组类型 diff --git a/hutool-core/src/main/java/cn/hutool/core/util/URLUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/URLUtil.java index 58848fb93..a73e82b6d 100644 --- a/hutool-core/src/main/java/cn/hutool/core/util/URLUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/util/URLUtil.java @@ -1,5 +1,13 @@ package cn.hutool.core.util; +import cn.hutool.core.exceptions.UtilException; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.io.IORuntimeException; +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.io.resource.ResourceUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.net.URLEncoder; + import java.io.BufferedReader; import java.io.File; import java.io.IOException; @@ -15,15 +23,6 @@ import java.net.URLStreamHandler; import java.nio.charset.Charset; import java.util.jar.JarFile; -import cn.hutool.core.exceptions.UtilException; -import cn.hutool.core.io.FileUtil; -import cn.hutool.core.io.IORuntimeException; -import cn.hutool.core.io.IoUtil; -import cn.hutool.core.io.resource.ResourceUtil; -import cn.hutool.core.lang.Assert; -import cn.hutool.core.lang.Console; -import cn.hutool.core.net.URLEncoder; - /** * 统一资源定位符相关工具类 * diff --git a/hutool-core/src/test/java/cn/hutool/core/clone/CloneTest.java b/hutool-core/src/test/java/cn/hutool/core/clone/CloneTest.java index 9fa476b25..e7f7f165d 100644 --- a/hutool-core/src/test/java/cn/hutool/core/clone/CloneTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/clone/CloneTest.java @@ -3,10 +3,6 @@ package cn.hutool.core.clone; import org.junit.Assert; import org.junit.Test; -import cn.hutool.core.clone.CloneRuntimeException; -import cn.hutool.core.clone.CloneSupport; -import cn.hutool.core.clone.Cloneable; - /** * 克隆单元测试 * @author Looly @@ -72,13 +68,8 @@ public class CloneTest { return false; } if (name == null) { - if (other.name != null) { - return false; - } - } else if (!name.equals(other.name)) { - return false; - } - return true; + return other.name == null; + } else return name.equals(other.name); } } @@ -116,13 +107,8 @@ public class CloneTest { return false; } if (name == null) { - if (other.name != null) { - return false; - } - } else if (!name.equals(other.name)) { - return false; - } - return true; + return other.name == null; + } else return name.equals(other.name); } } } diff --git a/hutool-core/src/test/java/cn/hutool/core/collection/CollUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/collection/CollUtilTest.java index a170ad4c2..55de37cf3 100644 --- a/hutool-core/src/test/java/cn/hutool/core/collection/CollUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/collection/CollUtilTest.java @@ -1,5 +1,13 @@ package cn.hutool.core.collection; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Dict; +import cn.hutool.core.lang.Editor; +import cn.hutool.core.lang.Filter; +import cn.hutool.core.map.MapUtil; +import org.junit.Assert; +import org.junit.Test; + import java.util.ArrayList; import java.util.Collection; import java.util.Comparator; @@ -12,19 +20,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import org.junit.Assert; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; - -import cn.hutool.core.collection.CollUtil.Hash; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.lang.Dict; -import cn.hutool.core.lang.Editor; -import cn.hutool.core.lang.Filter; -import cn.hutool.core.lang.Matcher; -import cn.hutool.core.map.MapUtil; - /** * 集合工具类单元测试 * @@ -63,14 +58,7 @@ public class CollUtilTest { Collection union = CollectionUtil.union(list1, list2); - Assert.assertEquals(3, CollectionUtil.count(union, new Matcher() { - - @Override - public boolean match(String t) { - return t.equals("b"); - } - - })); + Assert.assertEquals(3, CollectionUtil.count(union, t -> t.equals("b"))); } @Test @@ -79,14 +67,7 @@ public class CollUtilTest { ArrayList list2 = CollectionUtil.newArrayList("a", "b", "b", "b", "c", "d"); Collection union = CollectionUtil.intersection(list1, list2); - Assert.assertEquals(2, CollectionUtil.count(union, new Matcher() { - - @Override - public boolean match(String t) { - return t.equals("b"); - } - - })); + Assert.assertEquals(2, CollectionUtil.count(union, t -> t.equals("b"))); } @Test @@ -188,12 +169,9 @@ public class CollUtilTest { map.put("c", "3"); final String[] result = new String[1]; - CollectionUtil.forEach(map, new CollUtil.KVConsumer() { - @Override - public void accept(String key, String value, int index) { - if (key.equals("a")) { - result[0] = value; - } + CollectionUtil.forEach(map, (key, value, index) -> { + if (key.equals("a")) { + result[0] = value; } }); Assert.assertEquals("1", result[0]); @@ -203,12 +181,7 @@ public class CollUtilTest { public void filterTest() { ArrayList list = CollUtil.newArrayList("a", "b", "c"); - Collection filtered = CollUtil.filter(list, new Editor() { - @Override - public String edit(String t) { - return t + 1; - } - }); + Collection filtered = CollUtil.filter(list, (Editor) t -> t + 1); Assert.assertEquals(CollUtil.newArrayList("a1", "b1", "c1"), filtered); } @@ -217,16 +190,10 @@ public class CollUtilTest { public void filterTest2() { ArrayList list = CollUtil.newArrayList("a", "b", "c"); - ArrayList filtered = CollUtil.filter(list, new Filter() { - - @Override - public boolean accept(String t) { - return false == "a".equals(t); - } - }); + ArrayList filtered = CollUtil.filter(list, (Filter) t -> false == "a".equals(t)); // 原地过滤 - Assert.assertTrue(list == filtered); + Assert.assertSame(list, filtered); Assert.assertEquals(CollUtil.newArrayList("b", "c"), filtered); } @@ -237,7 +204,7 @@ public class CollUtilTest { ArrayList filtered = CollUtil.removeNull(list); // 原地过滤 - Assert.assertTrue(list == filtered); + Assert.assertSame(list, filtered); Assert.assertEquals(CollUtil.newArrayList("a", "b", "c", "", " "), filtered); } @@ -248,7 +215,7 @@ public class CollUtilTest { ArrayList filtered = CollUtil.removeEmpty(list); // 原地过滤 - Assert.assertTrue(list == filtered); + Assert.assertSame(list, filtered); Assert.assertEquals(CollUtil.newArrayList("a", "b", "c", " "), filtered); } @@ -259,7 +226,7 @@ public class CollUtilTest { ArrayList filtered = CollUtil.removeBlank(list); // 原地过滤 - Assert.assertTrue(list == filtered); + Assert.assertSame(list, filtered); Assert.assertEquals(CollUtil.newArrayList("a", "b", "c"), filtered); } @@ -269,13 +236,9 @@ public class CollUtilTest { List> group = CollectionUtil.group(list, null); Assert.assertTrue(group.size() > 0); - List> group2 = CollectionUtil.group(list, new Hash() { - @Override - public int hash(String t) { - // 按照奇数偶数分类 - return Integer.parseInt(t) % 2; - } - + List> group2 = CollectionUtil.group(list, t -> { + // 按照奇数偶数分类 + return Integer.parseInt(t) % 2; }); Assert.assertEquals(CollUtil.newArrayList("2", "4", "6"), group2.get(0)); Assert.assertEquals(CollUtil.newArrayList("1", "3", "5"), group2.get(1)); @@ -497,10 +460,7 @@ public class CollUtilTest { Assert.assertEquals(arrayList, retval); } - @Rule - public ExpectedException thrown = ExpectedException.none(); - - @Test + @Test(expected = IndexOutOfBoundsException.class) public void subInput1PositiveNegativePositiveOutputArrayIndexOutOfBoundsException() { // Arrange final List list = new ArrayList<>(); @@ -510,7 +470,6 @@ public class CollUtilTest { final int step = 2; // Act - thrown.expect(ArrayIndexOutOfBoundsException.class); CollUtil.sub(list, start, end, step); // Method is not expected to return due to exception thrown } @@ -588,13 +547,7 @@ public class CollUtilTest { @Test public void sortPageAllTest() { ArrayList list = CollUtil.newArrayList(1, 2, 3, 4, 5, 6, 7, 8, 9); - List sortPageAll = CollUtil.sortPageAll(2, 5, new Comparator() { - @Override - public int compare(Integer o1, Integer o2) { - // 反序 - return o2.compareTo(o1); - } - }, list); + List sortPageAll = CollUtil.sortPageAll(2, 5, Comparator.reverseOrder(), list); Assert.assertEquals(CollUtil.newArrayList(4, 3, 2, 1), sortPageAll); } diff --git a/hutool-core/src/test/java/cn/hutool/core/convert/ConvertTest.java b/hutool-core/src/test/java/cn/hutool/core/convert/ConvertTest.java index 81bc6f2a1..a68db5702 100644 --- a/hutool-core/src/test/java/cn/hutool/core/convert/ConvertTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/convert/ConvertTest.java @@ -1,11 +1,9 @@ package cn.hutool.core.convert; -import cn.hutool.core.date.DateUtil; import org.junit.Assert; import org.junit.Test; import java.util.ArrayList; -import java.util.Date; /** * 类型转换工具单元测试 diff --git a/hutool-core/src/test/java/cn/hutool/core/convert/DateConvertTest.java b/hutool-core/src/test/java/cn/hutool/core/convert/DateConvertTest.java index bb4080eb6..bf6134815 100644 --- a/hutool-core/src/test/java/cn/hutool/core/convert/DateConvertTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/convert/DateConvertTest.java @@ -1,7 +1,6 @@ package cn.hutool.core.convert; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.lang.Console; import org.junit.Assert; import org.junit.Test; diff --git a/hutool-core/src/test/java/cn/hutool/core/math/ArrangementTest.java b/hutool-core/src/test/java/cn/hutool/core/math/ArrangementTest.java index 3dc21e569..efe99c920 100644 --- a/hutool-core/src/test/java/cn/hutool/core/math/ArrangementTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/math/ArrangementTest.java @@ -52,7 +52,7 @@ public class ArrangementTest { Assert.assertEquals(Arrangement.countAll(4), selectAll.size()); List list2 = arrangement.select(0); - Assert.assertTrue(1 == list2.size()); + Assert.assertEquals(1, list2.size()); } @Test diff --git a/hutool-core/src/test/java/cn/hutool/core/util/ClassUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/ClassUtilTest.java index 7cb494c7e..480a3da17 100644 --- a/hutool-core/src/test/java/cn/hutool/core/util/ClassUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/util/ClassUtilTest.java @@ -61,7 +61,7 @@ public class ClassUtilTest { } @Test - public void getDeclaredMethod() throws Exception { + public void getDeclaredMethod() { Method noMethod = ClassUtil.getDeclaredMethod(TestSubClass.class, "noMethod"); Assert.assertNull(noMethod); diff --git a/hutool-core/src/test/java/cn/hutool/core/util/URLUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/URLUtilTest.java index bbeb04689..80283fe38 100644 --- a/hutool-core/src/test/java/cn/hutool/core/util/URLUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/util/URLUtilTest.java @@ -1,6 +1,5 @@ package cn.hutool.core.util; -import cn.hutool.core.lang.Console; import org.junit.Assert; import org.junit.Test; diff --git a/hutool-core/src/test/java/cn/hutool/core/util/XmlUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/XmlUtilTest.java index 550dfcf0a..463e40826 100644 --- a/hutool-core/src/test/java/cn/hutool/core/util/XmlUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/util/XmlUtilTest.java @@ -21,10 +21,6 @@ import cn.hutool.core.map.MapUtil; */ public class XmlUtilTest { - @Test - public void buildTest() { - } - @Test public void parseTest() { String result = ""// diff --git a/hutool-cron/src/main/java/cn/hutool/cron/listener/SimpleTaskListener.java b/hutool-cron/src/main/java/cn/hutool/cron/listener/SimpleTaskListener.java index 2e52078db..0599ab11e 100644 --- a/hutool-cron/src/main/java/cn/hutool/cron/listener/SimpleTaskListener.java +++ b/hutool-cron/src/main/java/cn/hutool/cron/listener/SimpleTaskListener.java @@ -16,12 +16,10 @@ public class SimpleTaskListener implements TaskListener{ @Override public void onSucceeded(TaskExecutor executor) { - } @Override public void onFailed(TaskExecutor executor, Throwable exception) { - } } diff --git a/hutool-cron/src/main/java/cn/hutool/cron/pattern/matcher/BoolArrayValueMatcher.java b/hutool-cron/src/main/java/cn/hutool/cron/pattern/matcher/BoolArrayValueMatcher.java index 949e2e811..18d4bb721 100644 --- a/hutool-cron/src/main/java/cn/hutool/cron/pattern/matcher/BoolArrayValueMatcher.java +++ b/hutool-cron/src/main/java/cn/hutool/cron/pattern/matcher/BoolArrayValueMatcher.java @@ -12,7 +12,7 @@ import cn.hutool.core.util.StrUtil; */ public class BoolArrayValueMatcher implements ValueMatcher{ - boolean[] bValues; + private final boolean[] bValues; public BoolArrayValueMatcher(List intValueList) { bValues = new boolean[Collections.max(intValueList) + 1]; diff --git a/hutool-cron/src/main/java/cn/hutool/cron/task/InvokeTask.java b/hutool-cron/src/main/java/cn/hutool/cron/task/InvokeTask.java index 003a242dc..b1285c719 100644 --- a/hutool-cron/src/main/java/cn/hutool/cron/task/InvokeTask.java +++ b/hutool-cron/src/main/java/cn/hutool/cron/task/InvokeTask.java @@ -18,8 +18,7 @@ import cn.hutool.cron.CronException; * */ public class InvokeTask implements Task{ - - private Class clazz; + private Object obj; private Method method; @@ -41,18 +40,18 @@ public class InvokeTask implements Task{ if(StrUtil.isBlank(className)) { throw new IllegalArgumentException("Class name is blank !"); } - this.clazz = ClassLoaderUtil.loadClass(className); - if(null == this.clazz) { + final Class clazz = ClassLoaderUtil.loadClass(className); + if(null == clazz) { throw new IllegalArgumentException("Load class with name of [" + className + "] fail !"); } - this.obj = ReflectUtil.newInstanceIfPossible(this.clazz); + this.obj = ReflectUtil.newInstanceIfPossible(clazz); //方法 final String methodName = classNameWithMethodName.substring(splitIndex + 1); if(StrUtil.isBlank(methodName)) { throw new IllegalArgumentException("Method name is blank !"); } - this.method = ClassUtil.getPublicMethod(this.clazz, methodName); + this.method = ClassUtil.getPublicMethod(clazz, methodName); if(null == this.method) { throw new IllegalArgumentException("No method with name of [" + methodName + "] !"); } diff --git a/hutool-cron/src/test/java/cn/hutool/cron/demo/TestJob.java b/hutool-cron/src/test/java/cn/hutool/cron/demo/TestJob.java index 74d9257e5..a25fc5b43 100644 --- a/hutool-cron/src/test/java/cn/hutool/cron/demo/TestJob.java +++ b/hutool-cron/src/test/java/cn/hutool/cron/demo/TestJob.java @@ -26,6 +26,7 @@ public class TestJob { /** * 执行循环定时任务,测试在定时任务结束时作为deamon线程是否能正常结束 */ + @SuppressWarnings("InfiniteLoopStatement") public void doWhileTest() { String name = Thread.currentThread().getName(); while (true) { 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 3359dd72e..07936cddb 100644 --- a/hutool-crypto/src/main/java/cn/hutool/crypto/SecureUtil.java +++ b/hutool-crypto/src/main/java/cn/hutool/crypto/SecureUtil.java @@ -1,30 +1,9 @@ package cn.hutool.crypto; -import java.io.File; -import java.io.InputStream; -import java.security.KeyPair; -import java.security.KeyStore; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.security.PrivateKey; -import java.security.Provider; -import java.security.PublicKey; -import java.security.Security; -import java.security.Signature; -import java.security.cert.Certificate; -import java.security.spec.AlgorithmParameterSpec; -import java.security.spec.KeySpec; -import java.util.Map; - -import javax.crypto.Cipher; -import javax.crypto.Mac; -import javax.crypto.SecretKey; - import cn.hutool.core.codec.Base64; import cn.hutool.core.io.FileUtil; import cn.hutool.core.lang.Validator; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.HexUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; @@ -43,6 +22,25 @@ import cn.hutool.crypto.symmetric.DESede; import cn.hutool.crypto.symmetric.RC4; import cn.hutool.crypto.symmetric.SymmetricCrypto; +import javax.crypto.Cipher; +import javax.crypto.Mac; +import javax.crypto.SecretKey; +import java.io.File; +import java.io.InputStream; +import java.security.KeyPair; +import java.security.KeyStore; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.security.PrivateKey; +import java.security.Provider; +import java.security.PublicKey; +import java.security.Security; +import java.security.Signature; +import java.security.cert.Certificate; +import java.security.spec.AlgorithmParameterSpec; +import java.security.spec.KeySpec; +import java.util.Map; + /** * 安全相关工具类
* 加密分为三种:
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricAlgorithm.java b/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricAlgorithm.java index 02118f849..2cadaf9c5 100644 --- a/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricAlgorithm.java +++ b/hutool-crypto/src/main/java/cn/hutool/crypto/asymmetric/AsymmetricAlgorithm.java @@ -17,7 +17,7 @@ public enum AsymmetricAlgorithm { /** EC(Elliptic Curve)算法 */ EC("EC"); - private String value; + private final String value; /** * 构造 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 487c9470b..32bc0aee6 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 @@ -26,7 +26,7 @@ public class BaseAsymmetric>{ /** 私钥 */ protected PrivateKey privateKey; /** 锁 */ - protected Lock lock = new ReentrantLock(); + protected final Lock lock = new ReentrantLock(); // ------------------------------------------------------------------ Constructor start /** diff --git a/hutool-crypto/src/test/java/cn/hutool/crypto/test/RSATest.java b/hutool-crypto/src/test/java/cn/hutool/crypto/test/RSATest.java index 340dcfd6b..3d0cf6a6a 100644 --- a/hutool-crypto/src/test/java/cn/hutool/crypto/test/RSATest.java +++ b/hutool-crypto/src/test/java/cn/hutool/crypto/test/RSATest.java @@ -1,25 +1,21 @@ package cn.hutool.crypto.test; -import java.nio.charset.StandardCharsets; -import java.security.*; -import java.security.spec.InvalidKeySpecException; -import java.security.spec.X509EncodedKeySpec; - import cn.hutool.core.codec.Base64; -import cn.hutool.core.lang.Console; -import cn.hutool.core.util.*; -import org.junit.Assert; -import org.junit.Test; - +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.CharsetUtil; +import cn.hutool.core.util.HexUtil; +import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.KeyUtil; import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.asymmetric.KeyType; import cn.hutool.crypto.asymmetric.RSA; +import org.junit.Assert; +import org.junit.Test; -import javax.crypto.BadPaddingException; import javax.crypto.Cipher; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.NoSuchPaddingException; +import java.security.KeyPair; +import java.security.PublicKey; /** * RSA算法单元测试 diff --git a/hutool-db/src/main/java/cn/hutool/db/AbstractDb.java b/hutool-db/src/main/java/cn/hutool/db/AbstractDb.java index 7e9fe0260..3a6a2d449 100644 --- a/hutool-db/src/main/java/cn/hutool/db/AbstractDb.java +++ b/hutool-db/src/main/java/cn/hutool/db/AbstractDb.java @@ -33,7 +33,7 @@ import cn.hutool.db.sql.Wrapper; public abstract class AbstractDb implements Serializable { private static final long serialVersionUID = 3858951941916349062L; - protected DataSource ds; + protected final DataSource ds; /** * 是否支持事务 */ diff --git a/hutool-db/src/main/java/cn/hutool/db/ActiveEntity.java b/hutool-db/src/main/java/cn/hutool/db/ActiveEntity.java index a8bd360f0..8dad98907 100644 --- a/hutool-db/src/main/java/cn/hutool/db/ActiveEntity.java +++ b/hutool-db/src/main/java/cn/hutool/db/ActiveEntity.java @@ -15,7 +15,7 @@ import cn.hutool.core.map.MapUtil; public class ActiveEntity extends Entity { private static final long serialVersionUID = 6112321379601134750L; - private Db db; + private final Db db; // --------------------------------------------------------------- Static method start /** diff --git a/hutool-db/src/main/java/cn/hutool/db/ds/hikari/HikariDSFactory.java b/hutool-db/src/main/java/cn/hutool/db/ds/hikari/HikariDSFactory.java index 063a7e708..5d89c8b06 100644 --- a/hutool-db/src/main/java/cn/hutool/db/ds/hikari/HikariDSFactory.java +++ b/hutool-db/src/main/java/cn/hutool/db/ds/hikari/HikariDSFactory.java @@ -44,7 +44,6 @@ public class HikariDSFactory extends AbstractDSFactory { config.put("password", pass); } - final HikariDataSource ds = new HikariDataSource(new HikariConfig(config)); - return ds; + return new HikariDataSource(new HikariConfig(config)); } } diff --git a/hutool-db/src/main/java/cn/hutool/db/handler/BeanHandler.java b/hutool-db/src/main/java/cn/hutool/db/handler/BeanHandler.java index 74634960d..f33b141c5 100644 --- a/hutool-db/src/main/java/cn/hutool/db/handler/BeanHandler.java +++ b/hutool-db/src/main/java/cn/hutool/db/handler/BeanHandler.java @@ -14,7 +14,7 @@ import java.sql.SQLException; public class BeanHandler implements RsHandler{ private static final long serialVersionUID = -5491214744966544475L; - private Class elementBeanType; + private final Class elementBeanType; /** * 创建一个 BeanHandler对象 @@ -24,7 +24,7 @@ public class BeanHandler implements RsHandler{ * @return BeanHandler对象 */ public static BeanHandler create(Class beanType) { - return new BeanHandler(beanType); + return new BeanHandler<>(beanType); } public BeanHandler(Class beanType) { diff --git a/hutool-db/src/main/java/cn/hutool/db/handler/BeanListHandler.java b/hutool-db/src/main/java/cn/hutool/db/handler/BeanListHandler.java index 3753db179..a1305f6b1 100644 --- a/hutool-db/src/main/java/cn/hutool/db/handler/BeanListHandler.java +++ b/hutool-db/src/main/java/cn/hutool/db/handler/BeanListHandler.java @@ -15,7 +15,7 @@ import java.util.List; public class BeanListHandler implements RsHandler> { private static final long serialVersionUID = 4510569754766197707L; - private Class elementBeanType; + private final Class elementBeanType; /** * 创建一个 BeanListHandler对象 @@ -25,7 +25,7 @@ public class BeanListHandler implements RsHandler> { * @return BeanListHandler对象 */ public static BeanListHandler create(Class beanType) { - return new BeanListHandler(beanType); + return new BeanListHandler<>(beanType); } /** @@ -38,6 +38,6 @@ public class BeanListHandler implements RsHandler> { @Override public List handle(ResultSet rs) throws SQLException { - return HandleHelper.handleRsToBeanList(rs, new ArrayList(), elementBeanType); + return HandleHelper.handleRsToBeanList(rs, new ArrayList<>(), elementBeanType); } } diff --git a/hutool-extra/src/main/java/cn/hutool/extra/ftp/Ftp.java b/hutool-extra/src/main/java/cn/hutool/extra/ftp/Ftp.java index 2ce8c6d5f..25d613f9e 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/ftp/Ftp.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/ftp/Ftp.java @@ -222,13 +222,11 @@ public class Ftp extends AbstractFtp { return false; } - boolean flag = true; try { - flag = client.changeWorkingDirectory(directory); + return client.changeWorkingDirectory(directory); } catch (IOException e) { throw new FtpException(e); } - return flag; } /** @@ -285,13 +283,11 @@ public class Ftp extends AbstractFtp { @Override public boolean mkdir(String dir) { - boolean flag = true; try { - flag = this.client.makeDirectory(dir); + return this.client.makeDirectory(dir); } catch (IOException e) { throw new FtpException(e); } - return flag; } /** @@ -307,10 +303,7 @@ public class Ftp extends AbstractFtp { } catch (IOException e) { throw new FtpException(e); } - if (ArrayUtil.isNotEmpty(ftpFileArr)) { - return true; - } - return false; + return ArrayUtil.isNotEmpty(ftpFileArr); } @Override diff --git a/hutool-extra/src/main/java/cn/hutool/extra/servlet/multipart/UploadSetting.java b/hutool-extra/src/main/java/cn/hutool/extra/servlet/multipart/UploadSetting.java index 1ad8fc9b4..c75116c65 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/servlet/multipart/UploadSetting.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/servlet/multipart/UploadSetting.java @@ -1,12 +1,11 @@ package cn.hutool.extra.servlet.multipart; -import java.net.URL; - import cn.hutool.core.util.URLUtil; import cn.hutool.log.Log; -import cn.hutool.log.StaticLog; import cn.hutool.setting.Setting; +import java.net.URL; + /** * 上传文件设定文件 * diff --git a/hutool-extra/src/main/java/cn/hutool/extra/ssh/ChannelType.java b/hutool-extra/src/main/java/cn/hutool/extra/ssh/ChannelType.java index d18066ef3..db7e97f5e 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/ssh/ChannelType.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/ssh/ChannelType.java @@ -27,7 +27,7 @@ public enum ChannelType { SUBSYSTEM("subsystem"); /** channel值 */ - private String value; + private final String value; /** * 构造 diff --git a/hutool-extra/src/main/java/cn/hutool/extra/ssh/JschUtil.java b/hutool-extra/src/main/java/cn/hutool/extra/ssh/JschUtil.java index 7bff2b934..e777193dc 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/ssh/JschUtil.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/ssh/JschUtil.java @@ -221,10 +221,10 @@ public class JschUtil { public static boolean unBindPort(Session session, int localPort) { try { session.delPortForwardingL(localPort); - return true; } catch (JSchException e) { throw new JschRuntimeException(e); } + return true; } /** diff --git a/hutool-extra/src/main/java/cn/hutool/extra/template/TemplateConfig.java b/hutool-extra/src/main/java/cn/hutool/extra/template/TemplateConfig.java index bc6ef1a18..a80dcb76b 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/template/TemplateConfig.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/template/TemplateConfig.java @@ -181,9 +181,6 @@ public class TemplateConfig implements Serializable { } else if (!path.equals(other.path)) { return false; } - if (resourceMode != other.resourceMode) { - return false; - } - return true; + return resourceMode == other.resourceMode; } } diff --git a/hutool-extra/src/main/java/cn/hutool/extra/template/engine/beetl/BeetlEngine.java b/hutool-extra/src/main/java/cn/hutool/extra/template/engine/beetl/BeetlEngine.java index bde01f71d..a792a93e1 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/template/engine/beetl/BeetlEngine.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/template/engine/beetl/BeetlEngine.java @@ -23,7 +23,7 @@ import cn.hutool.extra.template.TemplateEngine; */ public class BeetlEngine implements TemplateEngine { - private GroupTemplate engine; + private final GroupTemplate engine; // --------------------------------------------------------------------------------- Constructor start /** diff --git a/hutool-extra/src/main/java/cn/hutool/extra/template/engine/beetl/BeetlTemplate.java b/hutool-extra/src/main/java/cn/hutool/extra/template/engine/beetl/BeetlTemplate.java index 030b42f8a..2916687ca 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/template/engine/beetl/BeetlTemplate.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/template/engine/beetl/BeetlTemplate.java @@ -15,7 +15,7 @@ import cn.hutool.extra.template.AbstractTemplate; public class BeetlTemplate extends AbstractTemplate implements Serializable{ private static final long serialVersionUID = -8157926902932567280L; - org.beetl.core.Template rawTemplate; + private final org.beetl.core.Template rawTemplate; /** * 包装Beetl模板 diff --git a/hutool-extra/src/main/java/cn/hutool/extra/template/engine/beetl/BeetlUtil.java b/hutool-extra/src/main/java/cn/hutool/extra/template/engine/beetl/BeetlUtil.java index 0b43e0a22..050da1b66 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/template/engine/beetl/BeetlUtil.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/template/engine/beetl/BeetlUtil.java @@ -254,7 +254,7 @@ public final class BeetlUtil { * */ public static class ResourceLoaderBuilder { - private CompositeResourceLoader compositeResourceLoader = new CompositeResourceLoader(); + private final CompositeResourceLoader compositeResourceLoader = new CompositeResourceLoader(); /** * 创建 diff --git a/hutool-extra/src/main/java/cn/hutool/extra/template/engine/rythm/RythmEngine.java b/hutool-extra/src/main/java/cn/hutool/extra/template/engine/rythm/RythmEngine.java index e615cd4b5..f226f3246 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/template/engine/rythm/RythmEngine.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/template/engine/rythm/RythmEngine.java @@ -66,7 +66,6 @@ public class RythmEngine implements TemplateEngine { props.put("home.template", path); } - final org.rythmengine.RythmEngine engine = new org.rythmengine.RythmEngine(props); - return engine; + return new org.rythmengine.RythmEngine(props); } } diff --git a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/Word.java b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/Word.java index 050500cbf..9ca5f6231 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/Word.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/Word.java @@ -1,12 +1,14 @@ package cn.hutool.extra.tokenizer; +import java.io.Serializable; + /** * 表示分词中的一个词 * * @author looly * */ -public interface Word { +public interface Word extends Serializable { /** * 获取单词文本 diff --git a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/analysis/AnalysisEngine.java b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/analysis/AnalysisEngine.java index 90c03c6a3..3d5da4827 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/analysis/AnalysisEngine.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/analysis/AnalysisEngine.java @@ -19,7 +19,7 @@ import cn.hutool.extra.tokenizer.TokenizerException; */ public class AnalysisEngine implements TokenizerEngine { - private Analyzer analyzer; + private final Analyzer analyzer; /** * 构造 diff --git a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/analysis/AnalysisResult.java b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/analysis/AnalysisResult.java index 0de0bb5a1..1689d31cc 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/analysis/AnalysisResult.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/analysis/AnalysisResult.java @@ -18,7 +18,7 @@ import cn.hutool.extra.tokenizer.Word; */ public class AnalysisResult extends AbstractResult { - private TokenStream stream; + private final TokenStream stream; /** * 构造 diff --git a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/analysis/AnalysisWord.java b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/analysis/AnalysisWord.java index cb2ef8500..4c92db13f 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/analysis/AnalysisWord.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/analysis/AnalysisWord.java @@ -13,8 +13,9 @@ import cn.hutool.extra.tokenizer.Word; * */ public class AnalysisWord implements Word { - - private Attribute word; + private static final long serialVersionUID = 1L; + + private final Attribute word; /** * 构造 diff --git a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/ansj/AnsjEngine.java b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/ansj/AnsjEngine.java index 75d1f3438..2bbae0e19 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/ansj/AnsjEngine.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/ansj/AnsjEngine.java @@ -16,7 +16,7 @@ import cn.hutool.extra.tokenizer.TokenizerEngine; */ public class AnsjEngine implements TokenizerEngine { - private Analysis analysis; + private final Analysis analysis; /** * 构造 diff --git a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/ansj/AnsjResult.java b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/ansj/AnsjResult.java index 0484215be..7779baaf0 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/ansj/AnsjResult.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/ansj/AnsjResult.java @@ -16,7 +16,7 @@ import cn.hutool.extra.tokenizer.Word; */ public class AnsjResult implements Result{ - Iterator result; + private final Iterator result; /** * 构造 diff --git a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/ansj/AnsjWord.java b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/ansj/AnsjWord.java index 2d77573d1..a6f777534 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/ansj/AnsjWord.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/ansj/AnsjWord.java @@ -11,7 +11,9 @@ import cn.hutool.extra.tokenizer.Word; * */ public class AnsjWord implements Word { - private Term term; + private static final long serialVersionUID = 1L; + + private final Term term; /** * 构造 diff --git a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/hanlp/HanLPWord.java b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/hanlp/HanLPWord.java index 494fa40d9..b7060bda0 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/hanlp/HanLPWord.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/hanlp/HanLPWord.java @@ -11,6 +11,7 @@ import cn.hutool.extra.tokenizer.Word; * */ public class HanLPWord implements Word { + private static final long serialVersionUID = 1L; private Term term; diff --git a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/ikanalyzer/IKAnalyzerWord.java b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/ikanalyzer/IKAnalyzerWord.java index 1f7016df8..ab062f93c 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/ikanalyzer/IKAnalyzerWord.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/ikanalyzer/IKAnalyzerWord.java @@ -11,6 +11,7 @@ import cn.hutool.extra.tokenizer.Word; * */ public class IKAnalyzerWord implements Word { + private static final long serialVersionUID = 1L; private Lexeme word; diff --git a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/jcseg/JcsegWord.java b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/jcseg/JcsegWord.java index 38e95f0f6..3ebab2096 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/jcseg/JcsegWord.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/jcseg/JcsegWord.java @@ -11,7 +11,9 @@ import cn.hutool.extra.tokenizer.Word; * */ public class JcsegWord implements Word { - private IWord word; + private static final long serialVersionUID = 1L; + + private final IWord word; /** * 构造 diff --git a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/jieba/JiebaWord.java b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/jieba/JiebaWord.java index 5e26178e6..c4e02b26e 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/jieba/JiebaWord.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/jieba/JiebaWord.java @@ -11,7 +11,9 @@ import cn.hutool.extra.tokenizer.Word; * */ public class JiebaWord implements Word { - private SegToken segToken; + private static final long serialVersionUID = 1L; + + private final SegToken segToken; /** * 构造 diff --git a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/mmseg/MmsegWord.java b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/mmseg/MmsegWord.java index 1c60ad4f9..7506366d0 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/mmseg/MmsegWord.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/mmseg/MmsegWord.java @@ -9,8 +9,9 @@ import cn.hutool.extra.tokenizer.Word; * */ public class MmsegWord implements Word { + private static final long serialVersionUID = 1L; - private com.chenlb.mmseg4j.Word word; + private final com.chenlb.mmseg4j.Word word; /** * 构造 diff --git a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/mynlp/MynlpWord.java b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/mynlp/MynlpWord.java index a273c75dd..b85955941 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/mynlp/MynlpWord.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/mynlp/MynlpWord.java @@ -6,17 +6,17 @@ import cn.hutool.extra.tokenizer.Word; /** * mmseg分词中的一个单词包装 - * - * @author looly * + * @author looly */ public class MynlpWord implements Word { - - private WordTerm word; + private static final long serialVersionUID = 1L; + + private final WordTerm word; /** * 构造 - * + * * @param word {@link WordTerm} */ public MynlpWord(WordTerm word) { @@ -27,12 +27,12 @@ public class MynlpWord implements Word { public String getText() { return word.getWord(); } - + @Override public int getStartOffset() { return this.word.offset; } - + @Override public int getEndOffset() { return getStartOffset() + word.word.length(); diff --git a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/word/WordWord.java b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/word/WordWord.java index 91a351992..70da866b7 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/word/WordWord.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/tokenizer/engine/word/WordWord.java @@ -9,8 +9,9 @@ import cn.hutool.extra.tokenizer.Word; * */ public class WordWord implements Word { + private static final long serialVersionUID = 1L; - private org.apdplat.word.segmentation.Word word; + private final org.apdplat.word.segmentation.Word word; /** * 构造 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 f208f7eec..7d29f1cd7 100644 --- a/hutool-extra/src/test/java/cn/hutool/extra/ssh/JschUtilTest.java +++ b/hutool-extra/src/test/java/cn/hutool/extra/ssh/JschUtilTest.java @@ -1,13 +1,10 @@ package cn.hutool.extra.ssh; -import com.jcraft.jsch.JSch; -import org.junit.Ignore; -import org.junit.Test; - -import com.jcraft.jsch.Session; - import cn.hutool.core.io.IoUtil; import cn.hutool.core.lang.Console; +import com.jcraft.jsch.Session; +import org.junit.Ignore; +import org.junit.Test; /** * Jsch工具类单元测试 diff --git a/hutool-http/src/main/java/cn/hutool/http/ssl/AndroidSupportSSLFactory.java b/hutool-http/src/main/java/cn/hutool/http/ssl/AndroidSupportSSLFactory.java index 774c2d4da..a7a8cd6d9 100644 --- a/hutool-http/src/main/java/cn/hutool/http/ssl/AndroidSupportSSLFactory.java +++ b/hutool-http/src/main/java/cn/hutool/http/ssl/AndroidSupportSSLFactory.java @@ -19,7 +19,7 @@ import java.security.NoSuchAlgorithmException; public class AndroidSupportSSLFactory extends CustomProtocolsSSLFactory { // Android低版本不重置的话某些SSL访问就会失败 - private static String[] protocols = {SSLv3, TLSv1, TLSv11, TLSv12}; + private static final String[] protocols = {SSLv3, TLSv1, TLSv11, TLSv12}; public AndroidSupportSSLFactory() throws KeyManagementException, NoSuchAlgorithmException { super(protocols); diff --git a/hutool-http/src/main/java/cn/hutool/http/useragent/UserAgentInfo.java b/hutool-http/src/main/java/cn/hutool/http/useragent/UserAgentInfo.java index 1d2a132b6..a16ecb60f 100644 --- a/hutool-http/src/main/java/cn/hutool/http/useragent/UserAgentInfo.java +++ b/hutool-http/src/main/java/cn/hutool/http/useragent/UserAgentInfo.java @@ -98,13 +98,8 @@ public class UserAgentInfo { } final UserAgentInfo other = (UserAgentInfo) obj; if (name == null) { - if (other.name != null) { - return false; - } - } else if (!name.equals(other.name)) { - return false; - } - return true; + return other.name == null; + } else return name.equals(other.name); } @Override diff --git a/hutool-json/src/main/java/cn/hutool/json/JSONNull.java b/hutool-json/src/main/java/cn/hutool/json/JSONNull.java index 9991ce16c..2d2c4d316 100644 --- a/hutool-json/src/main/java/cn/hutool/json/JSONNull.java +++ b/hutool-json/src/main/java/cn/hutool/json/JSONNull.java @@ -18,17 +18,6 @@ public class JSONNull implements Serializable{ */ public static final JSONNull NULL = new JSONNull(); - /** - * There is only intended to be a single instance of the NULL object, so the clone method returns itself. - *克隆方法只返回本身,此对象是个单例对象 - * - * @return NULL. - */ - @Override - protected final Object clone() { - return this; - } - /** * A Null object is equal to the null value and to itself. * 对象与其本身和null值相等 @@ -38,7 +27,7 @@ public class JSONNull implements Serializable{ */ @Override public boolean equals(Object object) { - return object == null || object == this; + return object == null || (object instanceof JSONNull && object == this); } @Override diff --git a/hutool-json/src/main/java/cn/hutool/json/JSONObject.java b/hutool-json/src/main/java/cn/hutool/json/JSONObject.java index 13bcb8d7d..1ff889878 100644 --- a/hutool-json/src/main/java/cn/hutool/json/JSONObject.java +++ b/hutool-json/src/main/java/cn/hutool/json/JSONObject.java @@ -17,7 +17,6 @@ import cn.hutool.json.serialize.JSONObjectSerializer; import cn.hutool.json.serialize.JSONSerializer; import java.io.IOException; -import java.io.StringWriter; import java.io.Writer; import java.lang.reflect.Method; import java.math.BigDecimal; diff --git a/hutool-log/src/main/java/cn/hutool/log/Log.java b/hutool-log/src/main/java/cn/hutool/log/Log.java index 9054b70f6..f11edf4c3 100644 --- a/hutool-log/src/main/java/cn/hutool/log/Log.java +++ b/hutool-log/src/main/java/cn/hutool/log/Log.java @@ -34,7 +34,7 @@ public interface Log extends TraceLog, DebugLog, InfoLog, WarnLog, ErrorLog { * @return Log * @since 5.0.0 */ - public static Log get(String name) { + static Log get(String name) { return LogFactory.get(name); } diff --git a/hutool-log/src/main/java/cn/hutool/log/dialect/jdk/JdkLog.java b/hutool-log/src/main/java/cn/hutool/log/dialect/jdk/JdkLog.java index 4dc6434c0..07deceeb1 100644 --- a/hutool-log/src/main/java/cn/hutool/log/dialect/jdk/JdkLog.java +++ b/hutool-log/src/main/java/cn/hutool/log/dialect/jdk/JdkLog.java @@ -140,7 +140,6 @@ public class JdkLog extends AbstractLog { /** * 传入调用日志类的信息 * @param callerFQCN 调用者全限定类名 - * @param superFQCN 调用者父类全限定名 * @param record The record to update */ private static void fillCallerData(String callerFQCN, LogRecord record) { diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelWriter.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelWriter.java index 9ce222d26..d8d54c090 100644 --- a/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelWriter.java +++ b/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelWriter.java @@ -792,7 +792,7 @@ public class ExcelWriter extends ExcelBase { * @see #writeRow(Map, boolean) * @since 4.1.5 */ - @SuppressWarnings({"rawtypes" }) + @SuppressWarnings({"rawtypes", "unchecked"}) public ExcelWriter writeRow(Object rowBean, boolean isWriteKeyAsHead) { if (rowBean instanceof Iterable) { return writeRow((Iterable) rowBean); @@ -806,7 +806,7 @@ public class ExcelWriter extends ExcelBase { } } else if (BeanUtil.isBean(rowBean.getClass())) { if (MapUtil.isEmpty(this.headerAlias)) { - rowMap = BeanUtil.beanToMap(rowBean, new LinkedHashMap(), false, false); + rowMap = BeanUtil.beanToMap(rowBean, new LinkedHashMap<>(), false, false); } else { // 别名存在情况下按照别名的添加顺序排序Bean数据 rowMap = BeanUtil.beanToMap(rowBean, new TreeMap<>(getInitedAliasComparator()), false, false); @@ -1018,7 +1018,7 @@ public class ExcelWriter extends ExcelBase { final Map filteredMap = new LinkedHashMap<>(); String aliasName; for (Entry entry : rowMap.entrySet()) { - aliasName = this.headerAlias.get(entry.getKey()); + aliasName = this.headerAlias.get(StrUtil.toString(entry.getKey())); if (null != aliasName) { // 别名键值对加入 filteredMap.put(aliasName, entry.getValue()); diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/CellDataType.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/CellDataType.java index 7ff0627bb..06273dcff 100644 --- a/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/CellDataType.java +++ b/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/CellDataType.java @@ -25,7 +25,7 @@ public enum CellDataType { NULL(""); /** 属性值 */ - private String name; + private final String name; /** * 构造 diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/ExcelSaxUtil.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/ExcelSaxUtil.java index 9ceb9acc8..5c4a40e05 100644 --- a/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/ExcelSaxUtil.java +++ b/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/ExcelSaxUtil.java @@ -149,6 +149,7 @@ public class ExcelSaxUtil { // 普通数字 if (null != numFmtString && numFmtString.indexOf(StrUtil.C_DOT) < 0) { final long longPart = (long) numValue; + //noinspection RedundantIfStatement if (longPart == numValue) { // 对于无小数部分的数字类型,转为Long return longPart; diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/style/StyleUtil.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/style/StyleUtil.java index 8160d3556..060ce6dbe 100644 --- a/hutool-poi/src/main/java/cn/hutool/poi/excel/style/StyleUtil.java +++ b/hutool-poi/src/main/java/cn/hutool/poi/excel/style/StyleUtil.java @@ -184,9 +184,6 @@ public class StyleUtil { * @since 4.6.3 */ public static boolean isNullOrDefaultStyle(Workbook workbook, CellStyle style) { - if(null == style || style.equals(workbook.getCellStyleAt(0))) { - return true; - } - return false; + return (null == style) || style.equals(workbook.getCellStyleAt(0)); } } diff --git a/hutool-socket/src/main/java/cn/hutool/socket/aio/AioClient.java b/hutool-socket/src/main/java/cn/hutool/socket/aio/AioClient.java index 9d69f7d41..ffe98ec6b 100644 --- a/hutool-socket/src/main/java/cn/hutool/socket/aio/AioClient.java +++ b/hutool-socket/src/main/java/cn/hutool/socket/aio/AioClient.java @@ -22,7 +22,7 @@ import cn.hutool.socket.SocketRuntimeException; */ public class AioClient implements Closeable{ - private AioSession session; + private final AioSession session; /** * 构造 diff --git a/hutool-socket/src/main/java/cn/hutool/socket/aio/AioServer.java b/hutool-socket/src/main/java/cn/hutool/socket/aio/AioServer.java index bf090a4eb..086a38dea 100644 --- a/hutool-socket/src/main/java/cn/hutool/socket/aio/AioServer.java +++ b/hutool-socket/src/main/java/cn/hutool/socket/aio/AioServer.java @@ -23,12 +23,12 @@ import cn.hutool.socket.SocketConfig; */ public class AioServer implements Closeable { private static final Log log = LogFactory.get(); - private static AcceptHandler ACCEPT_HANDLER = new AcceptHandler(); + private static final AcceptHandler ACCEPT_HANDLER = new AcceptHandler(); private AsynchronousChannelGroup group; private AsynchronousServerSocketChannel channel; protected IoAction ioAction; - protected SocketConfig config; + protected final SocketConfig config; /** diff --git a/hutool-socket/src/main/java/cn/hutool/socket/aio/AioSession.java b/hutool-socket/src/main/java/cn/hutool/socket/aio/AioSession.java index 94c285b49..553a8b7b4 100644 --- a/hutool-socket/src/main/java/cn/hutool/socket/aio/AioSession.java +++ b/hutool-socket/src/main/java/cn/hutool/socket/aio/AioSession.java @@ -25,8 +25,8 @@ public class AioSession implements Closeable{ private static final ReadHandler READ_HANDLER = new ReadHandler(); - private AsynchronousSocketChannel channel; - private IoAction ioAction; + private final AsynchronousSocketChannel channel; + private final IoAction ioAction; private ByteBuffer readBuffer; private ByteBuffer writeBuffer; /** 读取超时时长,小于等于0表示默认 */