From 19f6ea76ca6883fdb9e9e1d14caed631151a00ae Mon Sep 17 00:00:00 2001 From: Looly Date: Thu, 6 Apr 2023 01:46:28 +0800 Subject: [PATCH] fix code --- .../core/annotation/AnnotationUtil.java | 6 +- .../hutool/core/array/ArrayWrapper.java | 2 +- .../hutool/core/bean/BeanDescCache.java | 2 +- .../hutool/core/bean/BeanInfoCache.java | 2 +- .../dromara/hutool/core/bean/PropDesc.java | 2 +- .../hutool/core/bean/copier/CopyOptions.java | 4 +- .../org/dromara/hutool/core/cache/Cache.java | 2 +- .../hutool/core/cache/SimpleCache.java | 2 +- .../hutool/core/cache/impl/AbstractCache.java | 2 +- .../hutool/core/cache/impl/NoCache.java | 2 +- .../hutool/core/collection/CollUtil.java | 4 +- .../dromara/hutool/core/date/DateUtil.java | 1 - .../dromara/hutool/core/date/TimeUtil.java | 2 +- .../core/{lang => }/func/ComposeFunction.java | 2 +- .../core/{lang => }/func/FunctionPool.java | 2 +- .../core/{lang => }/func/LambdaFactory.java | 5 +- .../core/{lang => }/func/LambdaInfo.java | 2 +- .../core/{lang => }/func/LambdaUtil.java | 2 +- .../core/{lang => }/func/PredicateUtil.java | 2 +- .../core/{lang => }/func/SerBiConsumer.java | 2 +- .../core/{lang => }/func/SerBiFunction.java | 2 +- .../core/{lang => }/func/SerBiPredicate.java | 2 +- .../{lang => }/func/SerBinaryOperator.java | 2 +- .../core/{lang => }/func/SerConsumer.java | 2 +- .../core/{lang => }/func/SerConsumer3.java | 2 +- .../core/{lang => }/func/SerFunction.java | 2 +- .../core/{lang => }/func/SerPredicate.java | 2 +- .../core/{lang => }/func/SerRunnable.java | 2 +- .../core/{lang => }/func/SerSupplier.java | 2 +- .../{lang => }/func/SerUnaryOperator.java | 2 +- .../hutool/core/{lang => }/func/Wrapper.java | 2 +- .../core/{lang => }/func/package-info.java | 2 +- .../org/dromara/hutool/core/io/IoUtil.java | 2 +- .../dromara/hutool/core/io/ReaderWrapper.java | 2 +- .../hutool/core/io/file/FileReader.java | 4 +- .../dromara/hutool/core/io/file/FileUtil.java | 4 +- .../hutool/core/io/file/FileWrapper.java | 2 +- .../hutool/core/io/file/LineReadWatcher.java | 2 +- .../dromara/hutool/core/io/file/Tailer.java | 2 +- .../hutool/core/io/watch/WatchServer.java | 2 +- .../org/dromara/hutool/core/lang/Opt.java | 2 +- .../dromara/hutool/core/lang/Singleton.java | 2 +- .../core/lang/builder/GenericBuilder.java | 2 +- .../hutool/core/lang/range/FiniteBound.java | 9 +- .../org/dromara/hutool/core/map/Dict.java | 8 +- .../hutool/core/map/LinkedForestMap.java | 2 +- .../dromara/hutool/core/map/MapWrapper.java | 2 +- .../core/map/multi/CollectionValueMap.java | 2 +- .../dromara/hutool/core/map/multi/Table.java | 2 +- .../hutool/core/reflect/MethodHandleUtil.java | 101 ------------- .../hutool/core/reflect/ModifierUtil.java | 28 +++- .../core/reflect/lookup/LookupUtil.java | 133 +++++++++++++++++- .../core/reflect/lookup/package-info.java | 10 +- .../org/dromara/hutool/core/regex/ReUtil.java | 2 +- .../hutool/core/text/CharSequenceUtil.java | 3 +- .../hutool/core/text/split/SplitUtil.java | 1 - .../dromara/hutool/core/tree/BeanTree.java | 9 +- .../dromara/hutool/core/util/EnumUtil.java | 4 +- .../dromara/hutool/core/io/IoUtilTest.java | 2 +- .../core/lang/func/FunctionPoolTest.java | 1 + .../core/lang/func/LambdaFactoryTest.java | 12 +- .../hutool/core/lang/func/LambdaUtilTest.java | 1 + .../core/lang/func/PredicateUtilTest.java | 1 + .../core/reflect/MethodHandleUtilTest.java | 61 -------- .../core/reflect/lookup/LookupUtilTest.java | 106 ++++++++++++++ .../dromara/hutool/crypto/CipherWrapper.java | 2 +- .../org/dromara/hutool/db/AbstractDb.java | 4 +- .../org/dromara/hutool/db/ActiveEntity.java | 2 +- .../main/java/org/dromara/hutool/db/Db.java | 2 +- .../java/org/dromara/hutool/db/Entity.java | 2 +- .../java/org/dromara/hutool/db/Session.java | 2 +- .../org/dromara/hutool/db/ds/DSWrapper.java | 2 +- .../dromara/hutool/db/sql/SqlExecutor.java | 2 +- .../hutool/db/sql/StatementWrapper.java | 2 +- .../org/dromara/hutool/json/JSONObject.java | 8 +- .../hutool/json/serialize/JSONStringer.java | 2 +- .../dromara/hutool/poi/csv/CsvBaseReader.java | 2 +- .../org/dromara/hutool/poi/csv/CsvReader.java | 2 +- .../dromara/hutool/poi/excel/ExcelReader.java | 2 +- .../dromara/hutool/poi/csv/Issue2783Test.java | 2 +- .../hutool/poi/excel/ExcelReadTest.java | 2 +- .../dromara/hutool/setting/AbsSetting.java | 6 +- .../org/dromara/hutool/setting/Setting.java | 4 +- .../dromara/hutool/setting/dialect/Props.java | 8 +- 84 files changed, 378 insertions(+), 280 deletions(-) rename hutool-core/src/main/java/org/dromara/hutool/core/{lang => }/func/ComposeFunction.java (97%) rename hutool-core/src/main/java/org/dromara/hutool/core/{lang => }/func/FunctionPool.java (97%) rename hutool-core/src/main/java/org/dromara/hutool/core/{lang => }/func/LambdaFactory.java (96%) rename hutool-core/src/main/java/org/dromara/hutool/core/{lang => }/func/LambdaInfo.java (99%) rename hutool-core/src/main/java/org/dromara/hutool/core/{lang => }/func/LambdaUtil.java (99%) rename hutool-core/src/main/java/org/dromara/hutool/core/{lang => }/func/PredicateUtil.java (98%) rename hutool-core/src/main/java/org/dromara/hutool/core/{lang => }/func/SerBiConsumer.java (98%) rename hutool-core/src/main/java/org/dromara/hutool/core/{lang => }/func/SerBiFunction.java (98%) rename hutool-core/src/main/java/org/dromara/hutool/core/{lang => }/func/SerBiPredicate.java (98%) rename hutool-core/src/main/java/org/dromara/hutool/core/{lang => }/func/SerBinaryOperator.java (98%) rename hutool-core/src/main/java/org/dromara/hutool/core/{lang => }/func/SerConsumer.java (98%) rename hutool-core/src/main/java/org/dromara/hutool/core/{lang => }/func/SerConsumer3.java (98%) rename hutool-core/src/main/java/org/dromara/hutool/core/{lang => }/func/SerFunction.java (97%) rename hutool-core/src/main/java/org/dromara/hutool/core/{lang => }/func/SerPredicate.java (99%) rename hutool-core/src/main/java/org/dromara/hutool/core/{lang => }/func/SerRunnable.java (97%) rename hutool-core/src/main/java/org/dromara/hutool/core/{lang => }/func/SerSupplier.java (97%) rename hutool-core/src/main/java/org/dromara/hutool/core/{lang => }/func/SerUnaryOperator.java (97%) rename hutool-core/src/main/java/org/dromara/hutool/core/{lang => }/func/Wrapper.java (94%) rename hutool-core/src/main/java/org/dromara/hutool/core/{lang => }/func/package-info.java (95%) create mode 100644 hutool-core/src/test/java/org/dromara/hutool/core/reflect/lookup/LookupUtilTest.java diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/annotation/AnnotationUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/annotation/AnnotationUtil.java index 294e4722a..f40daee57 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/annotation/AnnotationUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/annotation/AnnotationUtil.java @@ -15,9 +15,9 @@ package org.dromara.hutool.core.annotation; import org.dromara.hutool.core.array.ArrayUtil; import org.dromara.hutool.core.classloader.ClassLoaderUtil; import org.dromara.hutool.core.exceptions.UtilException; -import org.dromara.hutool.core.lang.func.LambdaInfo; -import org.dromara.hutool.core.lang.func.LambdaUtil; -import org.dromara.hutool.core.lang.func.SerFunction; +import org.dromara.hutool.core.func.LambdaInfo; +import org.dromara.hutool.core.func.LambdaUtil; +import org.dromara.hutool.core.func.SerFunction; import org.dromara.hutool.core.map.WeakConcurrentMap; import org.dromara.hutool.core.reflect.FieldUtil; import org.dromara.hutool.core.reflect.MethodUtil; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/array/ArrayWrapper.java b/hutool-core/src/main/java/org/dromara/hutool/core/array/ArrayWrapper.java index 03dc2d3a0..2667d564a 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/array/ArrayWrapper.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/array/ArrayWrapper.java @@ -2,7 +2,7 @@ package org.dromara.hutool.core.array; import org.dromara.hutool.core.convert.Convert; import org.dromara.hutool.core.lang.Assert; -import org.dromara.hutool.core.lang.func.Wrapper; +import org.dromara.hutool.core.func.Wrapper; import org.dromara.hutool.core.util.ObjUtil; import java.lang.reflect.Array; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/bean/BeanDescCache.java b/hutool-core/src/main/java/org/dromara/hutool/core/bean/BeanDescCache.java index 258320b24..1ea563b84 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/bean/BeanDescCache.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/bean/BeanDescCache.java @@ -12,7 +12,7 @@ package org.dromara.hutool.core.bean; -import org.dromara.hutool.core.lang.func.SerSupplier; +import org.dromara.hutool.core.func.SerSupplier; import org.dromara.hutool.core.map.WeakConcurrentMap; /** diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/bean/BeanInfoCache.java b/hutool-core/src/main/java/org/dromara/hutool/core/bean/BeanInfoCache.java index 9d0e7c3be..3faed801c 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/bean/BeanInfoCache.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/bean/BeanInfoCache.java @@ -12,7 +12,7 @@ package org.dromara.hutool.core.bean; -import org.dromara.hutool.core.lang.func.SerSupplier; +import org.dromara.hutool.core.func.SerSupplier; import org.dromara.hutool.core.map.ReferenceConcurrentMap; import org.dromara.hutool.core.map.WeakConcurrentMap; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/bean/PropDesc.java b/hutool-core/src/main/java/org/dromara/hutool/core/bean/PropDesc.java index 2f2810162..453976f0f 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/bean/PropDesc.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/bean/PropDesc.java @@ -15,7 +15,7 @@ package org.dromara.hutool.core.bean; import org.dromara.hutool.core.annotation.AnnotationUtil; import org.dromara.hutool.core.annotation.PropIgnore; import org.dromara.hutool.core.convert.Convert; -import org.dromara.hutool.core.lang.func.LambdaUtil; +import org.dromara.hutool.core.func.LambdaUtil; import org.dromara.hutool.core.reflect.FieldUtil; import org.dromara.hutool.core.reflect.ModifierUtil; import org.dromara.hutool.core.reflect.ReflectUtil; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/bean/copier/CopyOptions.java b/hutool-core/src/main/java/org/dromara/hutool/core/bean/copier/CopyOptions.java index 959b8e59e..a087b349b 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/bean/copier/CopyOptions.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/bean/copier/CopyOptions.java @@ -14,8 +14,8 @@ package org.dromara.hutool.core.bean.copier; import org.dromara.hutool.core.convert.Convert; import org.dromara.hutool.core.convert.Converter; -import org.dromara.hutool.core.lang.func.LambdaUtil; -import org.dromara.hutool.core.lang.func.SerFunction; +import org.dromara.hutool.core.func.LambdaUtil; +import org.dromara.hutool.core.func.SerFunction; import org.dromara.hutool.core.lang.mutable.MutableEntry; import org.dromara.hutool.core.array.ArrayUtil; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/cache/Cache.java b/hutool-core/src/main/java/org/dromara/hutool/core/cache/Cache.java index fbb66b5e3..dbe286660 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/cache/Cache.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/cache/Cache.java @@ -13,7 +13,7 @@ package org.dromara.hutool.core.cache; import org.dromara.hutool.core.cache.impl.CacheObj; -import org.dromara.hutool.core.lang.func.SerSupplier; +import org.dromara.hutool.core.func.SerSupplier; import java.io.Serializable; import java.util.Iterator; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/cache/SimpleCache.java b/hutool-core/src/main/java/org/dromara/hutool/core/cache/SimpleCache.java index bf7c44fd7..8429be845 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/cache/SimpleCache.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/cache/SimpleCache.java @@ -13,7 +13,7 @@ package org.dromara.hutool.core.cache; import org.dromara.hutool.core.collection.iter.TransIter; -import org.dromara.hutool.core.lang.func.SerSupplier; +import org.dromara.hutool.core.func.SerSupplier; import org.dromara.hutool.core.lang.mutable.Mutable; import org.dromara.hutool.core.lang.mutable.MutableObj; import org.dromara.hutool.core.map.SafeConcurrentHashMap; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/cache/impl/AbstractCache.java b/hutool-core/src/main/java/org/dromara/hutool/core/cache/impl/AbstractCache.java index caf0b68cd..96bc88d38 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/cache/impl/AbstractCache.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/cache/impl/AbstractCache.java @@ -14,7 +14,7 @@ package org.dromara.hutool.core.cache.impl; import org.dromara.hutool.core.cache.Cache; import org.dromara.hutool.core.cache.CacheListener; -import org.dromara.hutool.core.lang.func.SerSupplier; +import org.dromara.hutool.core.func.SerSupplier; import org.dromara.hutool.core.lang.mutable.Mutable; import org.dromara.hutool.core.lang.mutable.MutableObj; import org.dromara.hutool.core.map.SafeConcurrentHashMap; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/cache/impl/NoCache.java b/hutool-core/src/main/java/org/dromara/hutool/core/cache/impl/NoCache.java index d68a30b36..be3bbe31c 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/cache/impl/NoCache.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/cache/impl/NoCache.java @@ -13,7 +13,7 @@ package org.dromara.hutool.core.cache.impl; import org.dromara.hutool.core.cache.Cache; -import org.dromara.hutool.core.lang.func.SerSupplier; +import org.dromara.hutool.core.func.SerSupplier; import java.util.Iterator; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/collection/CollUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/collection/CollUtil.java index c10f10b92..7094036e1 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/collection/CollUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/collection/CollUtil.java @@ -26,8 +26,8 @@ import org.dromara.hutool.core.convert.CompositeConverter; import org.dromara.hutool.core.convert.Convert; import org.dromara.hutool.core.exceptions.UtilException; import org.dromara.hutool.core.lang.Assert; -import org.dromara.hutool.core.lang.func.SerBiConsumer; -import org.dromara.hutool.core.lang.func.SerConsumer3; +import org.dromara.hutool.core.func.SerBiConsumer; +import org.dromara.hutool.core.func.SerConsumer3; import org.dromara.hutool.core.map.MapUtil; import org.dromara.hutool.core.reflect.ConstructorUtil; import org.dromara.hutool.core.reflect.FieldUtil; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/date/DateUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/date/DateUtil.java index 2d3b7dc3f..c3e33a432 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/date/DateUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/date/DateUtil.java @@ -24,7 +24,6 @@ import org.dromara.hutool.core.regex.PatternPool; import org.dromara.hutool.core.regex.ReUtil; import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.text.split.SplitUtil; -import org.dromara.hutool.core.date.format.parser.*; import javax.xml.datatype.XMLGregorianCalendar; import java.text.DateFormat; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/date/TimeUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/date/TimeUtil.java index 9f3b0095c..884eeadec 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/date/TimeUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/date/TimeUtil.java @@ -13,7 +13,7 @@ package org.dromara.hutool.core.date; import org.dromara.hutool.core.date.format.GlobalCustomFormat; -import org.dromara.hutool.core.lang.func.LambdaUtil; +import org.dromara.hutool.core.func.LambdaUtil; import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.util.ObjUtil; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/ComposeFunction.java b/hutool-core/src/main/java/org/dromara/hutool/core/func/ComposeFunction.java similarity index 97% rename from hutool-core/src/main/java/org/dromara/hutool/core/lang/func/ComposeFunction.java rename to hutool-core/src/main/java/org/dromara/hutool/core/func/ComposeFunction.java index 9ea3507d4..e3ce73a65 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/ComposeFunction.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/func/ComposeFunction.java @@ -10,7 +10,7 @@ * See the Mulan PSL v2 for more details. */ -package org.dromara.hutool.core.lang.func; +package org.dromara.hutool.core.func; import org.dromara.hutool.core.lang.Assert; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/FunctionPool.java b/hutool-core/src/main/java/org/dromara/hutool/core/func/FunctionPool.java similarity index 97% rename from hutool-core/src/main/java/org/dromara/hutool/core/lang/func/FunctionPool.java rename to hutool-core/src/main/java/org/dromara/hutool/core/func/FunctionPool.java index 1ed6873ba..cf5f76f70 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/FunctionPool.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/func/FunctionPool.java @@ -10,7 +10,7 @@ * See the Mulan PSL v2 for more details. */ -package org.dromara.hutool.core.lang.func; +package org.dromara.hutool.core.func; import org.dromara.hutool.core.reflect.ConstructorUtil; import org.dromara.hutool.core.util.JdkUtil; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/LambdaFactory.java b/hutool-core/src/main/java/org/dromara/hutool/core/func/LambdaFactory.java similarity index 96% rename from hutool-core/src/main/java/org/dromara/hutool/core/lang/func/LambdaFactory.java rename to hutool-core/src/main/java/org/dromara/hutool/core/func/LambdaFactory.java index 519288cf3..f9c55e7d2 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/LambdaFactory.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/func/LambdaFactory.java @@ -10,13 +10,12 @@ * See the Mulan PSL v2 for more details. */ -package org.dromara.hutool.core.lang.func; +package org.dromara.hutool.core.func; import org.dromara.hutool.core.exceptions.UtilException; import org.dromara.hutool.core.lang.Assert; import org.dromara.hutool.core.lang.mutable.MutableEntry; import org.dromara.hutool.core.map.WeakConcurrentMap; -import org.dromara.hutool.core.reflect.MethodHandleUtil; import org.dromara.hutool.core.reflect.MethodUtil; import org.dromara.hutool.core.reflect.ModifierUtil; import org.dromara.hutool.core.reflect.ReflectUtil; @@ -94,7 +93,7 @@ public class LambdaFactory { Assert.equals(abstractMethods.size(), 1, "不支持非函数式接口"); ReflectUtil.setAccessible(executable); - final MethodHandle methodHandle = MethodHandleUtil.unreflect(executable); + final MethodHandle methodHandle = LookupUtil.unreflect(executable); final MethodType instantiatedMethodType; if (executable instanceof Method) { final Method method = (Method) executable; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/LambdaInfo.java b/hutool-core/src/main/java/org/dromara/hutool/core/func/LambdaInfo.java similarity index 99% rename from hutool-core/src/main/java/org/dromara/hutool/core/lang/func/LambdaInfo.java rename to hutool-core/src/main/java/org/dromara/hutool/core/func/LambdaInfo.java index 9475ae800..9eabb3553 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/LambdaInfo.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/func/LambdaInfo.java @@ -10,7 +10,7 @@ * See the Mulan PSL v2 for more details. */ -package org.dromara.hutool.core.lang.func; +package org.dromara.hutool.core.func; import org.dromara.hutool.core.bean.BeanUtil; import org.dromara.hutool.core.classloader.ClassLoaderUtil; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/LambdaUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/func/LambdaUtil.java similarity index 99% rename from hutool-core/src/main/java/org/dromara/hutool/core/lang/func/LambdaUtil.java rename to hutool-core/src/main/java/org/dromara/hutool/core/func/LambdaUtil.java index 251634d00..ecddd4ec7 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/LambdaUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/func/LambdaUtil.java @@ -10,7 +10,7 @@ * See the Mulan PSL v2 for more details. */ -package org.dromara.hutool.core.lang.func; +package org.dromara.hutool.core.func; import org.dromara.hutool.core.bean.BeanUtil; import org.dromara.hutool.core.classloader.ClassLoaderUtil; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/PredicateUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/func/PredicateUtil.java similarity index 98% rename from hutool-core/src/main/java/org/dromara/hutool/core/lang/func/PredicateUtil.java rename to hutool-core/src/main/java/org/dromara/hutool/core/func/PredicateUtil.java index 666f69611..f9699a507 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/PredicateUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/func/PredicateUtil.java @@ -10,7 +10,7 @@ * See the Mulan PSL v2 for more details. */ -package org.dromara.hutool.core.lang.func; +package org.dromara.hutool.core.func; import org.dromara.hutool.core.stream.StreamUtil; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerBiConsumer.java b/hutool-core/src/main/java/org/dromara/hutool/core/func/SerBiConsumer.java similarity index 98% rename from hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerBiConsumer.java rename to hutool-core/src/main/java/org/dromara/hutool/core/func/SerBiConsumer.java index cfa5fc22b..affea5576 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerBiConsumer.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/func/SerBiConsumer.java @@ -10,7 +10,7 @@ * See the Mulan PSL v2 for more details. */ -package org.dromara.hutool.core.lang.func; +package org.dromara.hutool.core.func; import org.dromara.hutool.core.exceptions.UtilException; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerBiFunction.java b/hutool-core/src/main/java/org/dromara/hutool/core/func/SerBiFunction.java similarity index 98% rename from hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerBiFunction.java rename to hutool-core/src/main/java/org/dromara/hutool/core/func/SerBiFunction.java index 55949976b..cfba2ac82 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerBiFunction.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/func/SerBiFunction.java @@ -10,7 +10,7 @@ * See the Mulan PSL v2 for more details. */ -package org.dromara.hutool.core.lang.func; +package org.dromara.hutool.core.func; import org.dromara.hutool.core.exceptions.UtilException; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerBiPredicate.java b/hutool-core/src/main/java/org/dromara/hutool/core/func/SerBiPredicate.java similarity index 98% rename from hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerBiPredicate.java rename to hutool-core/src/main/java/org/dromara/hutool/core/func/SerBiPredicate.java index fc889fad5..03c7ce838 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerBiPredicate.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/func/SerBiPredicate.java @@ -10,7 +10,7 @@ * See the Mulan PSL v2 for more details. */ -package org.dromara.hutool.core.lang.func; +package org.dromara.hutool.core.func; import org.dromara.hutool.core.exceptions.UtilException; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerBinaryOperator.java b/hutool-core/src/main/java/org/dromara/hutool/core/func/SerBinaryOperator.java similarity index 98% rename from hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerBinaryOperator.java rename to hutool-core/src/main/java/org/dromara/hutool/core/func/SerBinaryOperator.java index d38d9815b..f673e0f1c 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerBinaryOperator.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/func/SerBinaryOperator.java @@ -10,7 +10,7 @@ * See the Mulan PSL v2 for more details. */ -package org.dromara.hutool.core.lang.func; +package org.dromara.hutool.core.func; import org.dromara.hutool.core.exceptions.UtilException; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerConsumer.java b/hutool-core/src/main/java/org/dromara/hutool/core/func/SerConsumer.java similarity index 98% rename from hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerConsumer.java rename to hutool-core/src/main/java/org/dromara/hutool/core/func/SerConsumer.java index 413f458e6..b0d7b2dd9 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerConsumer.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/func/SerConsumer.java @@ -10,7 +10,7 @@ * See the Mulan PSL v2 for more details. */ -package org.dromara.hutool.core.lang.func; +package org.dromara.hutool.core.func; import org.dromara.hutool.core.exceptions.UtilException; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerConsumer3.java b/hutool-core/src/main/java/org/dromara/hutool/core/func/SerConsumer3.java similarity index 98% rename from hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerConsumer3.java rename to hutool-core/src/main/java/org/dromara/hutool/core/func/SerConsumer3.java index e7d62f08a..a0b1ab979 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerConsumer3.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/func/SerConsumer3.java @@ -10,7 +10,7 @@ * See the Mulan PSL v2 for more details. */ -package org.dromara.hutool.core.lang.func; +package org.dromara.hutool.core.func; import org.dromara.hutool.core.exceptions.UtilException; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerFunction.java b/hutool-core/src/main/java/org/dromara/hutool/core/func/SerFunction.java similarity index 97% rename from hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerFunction.java rename to hutool-core/src/main/java/org/dromara/hutool/core/func/SerFunction.java index 5e2242c13..862667150 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerFunction.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/func/SerFunction.java @@ -10,7 +10,7 @@ * See the Mulan PSL v2 for more details. */ -package org.dromara.hutool.core.lang.func; +package org.dromara.hutool.core.func; import org.dromara.hutool.core.exceptions.UtilException; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerPredicate.java b/hutool-core/src/main/java/org/dromara/hutool/core/func/SerPredicate.java similarity index 99% rename from hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerPredicate.java rename to hutool-core/src/main/java/org/dromara/hutool/core/func/SerPredicate.java index 41ddcb4db..db97f7b9b 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerPredicate.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/func/SerPredicate.java @@ -10,7 +10,7 @@ * See the Mulan PSL v2 for more details. */ -package org.dromara.hutool.core.lang.func; +package org.dromara.hutool.core.func; import org.dromara.hutool.core.exceptions.UtilException; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerRunnable.java b/hutool-core/src/main/java/org/dromara/hutool/core/func/SerRunnable.java similarity index 97% rename from hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerRunnable.java rename to hutool-core/src/main/java/org/dromara/hutool/core/func/SerRunnable.java index 29faba6a0..f90da61b5 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerRunnable.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/func/SerRunnable.java @@ -10,7 +10,7 @@ * See the Mulan PSL v2 for more details. */ -package org.dromara.hutool.core.lang.func; +package org.dromara.hutool.core.func; import org.dromara.hutool.core.exceptions.UtilException; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerSupplier.java b/hutool-core/src/main/java/org/dromara/hutool/core/func/SerSupplier.java similarity index 97% rename from hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerSupplier.java rename to hutool-core/src/main/java/org/dromara/hutool/core/func/SerSupplier.java index 851a09838..ca44df0bb 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerSupplier.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/func/SerSupplier.java @@ -10,7 +10,7 @@ * See the Mulan PSL v2 for more details. */ -package org.dromara.hutool.core.lang.func; +package org.dromara.hutool.core.func; import org.dromara.hutool.core.exceptions.UtilException; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerUnaryOperator.java b/hutool-core/src/main/java/org/dromara/hutool/core/func/SerUnaryOperator.java similarity index 97% rename from hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerUnaryOperator.java rename to hutool-core/src/main/java/org/dromara/hutool/core/func/SerUnaryOperator.java index cd903f37f..1a309be12 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/SerUnaryOperator.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/func/SerUnaryOperator.java @@ -10,7 +10,7 @@ * See the Mulan PSL v2 for more details. */ -package org.dromara.hutool.core.lang.func; +package org.dromara.hutool.core.func; import org.dromara.hutool.core.exceptions.UtilException; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/Wrapper.java b/hutool-core/src/main/java/org/dromara/hutool/core/func/Wrapper.java similarity index 94% rename from hutool-core/src/main/java/org/dromara/hutool/core/lang/func/Wrapper.java rename to hutool-core/src/main/java/org/dromara/hutool/core/func/Wrapper.java index 9dc5272ba..9171aa6b2 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/Wrapper.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/func/Wrapper.java @@ -10,7 +10,7 @@ * See the Mulan PSL v2 for more details. */ -package org.dromara.hutool.core.lang.func; +package org.dromara.hutool.core.func; /** * 包装接口 diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/package-info.java b/hutool-core/src/main/java/org/dromara/hutool/core/func/package-info.java similarity index 95% rename from hutool-core/src/main/java/org/dromara/hutool/core/lang/func/package-info.java rename to hutool-core/src/main/java/org/dromara/hutool/core/func/package-info.java index 28bf21e04..c3089983e 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/func/package-info.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/func/package-info.java @@ -19,4 +19,4 @@ * @author looly * */ -package org.dromara.hutool.core.lang.func; +package org.dromara.hutool.core.func; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/IoUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/IoUtil.java index d32942bb6..794633ade 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/IoUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/IoUtil.java @@ -22,7 +22,7 @@ import org.dromara.hutool.core.io.stream.FastByteArrayOutputStream; import org.dromara.hutool.core.io.stream.StreamReader; import org.dromara.hutool.core.io.stream.StreamWriter; import org.dromara.hutool.core.lang.Assert; -import org.dromara.hutool.core.lang.func.SerConsumer; +import org.dromara.hutool.core.func.SerConsumer; import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.util.ByteUtil; import org.dromara.hutool.core.util.CharsetUtil; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/ReaderWrapper.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/ReaderWrapper.java index e3b5f658a..ac57d57b9 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/ReaderWrapper.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/ReaderWrapper.java @@ -13,7 +13,7 @@ package org.dromara.hutool.core.io; import org.dromara.hutool.core.lang.Assert; -import org.dromara.hutool.core.lang.func.Wrapper; +import org.dromara.hutool.core.func.Wrapper; import java.io.IOException; import java.io.Reader; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileReader.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileReader.java index 1a3f0c15f..978ac7382 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileReader.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileReader.java @@ -15,8 +15,8 @@ package org.dromara.hutool.core.io.file; import org.dromara.hutool.core.exceptions.UtilException; import org.dromara.hutool.core.io.IORuntimeException; import org.dromara.hutool.core.io.IoUtil; -import org.dromara.hutool.core.lang.func.SerConsumer; -import org.dromara.hutool.core.lang.func.SerFunction; +import org.dromara.hutool.core.func.SerConsumer; +import org.dromara.hutool.core.func.SerFunction; import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.util.CharsetUtil; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileUtil.java index 48e095e8c..89deef13d 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileUtil.java @@ -21,8 +21,8 @@ import org.dromara.hutool.core.io.resource.ResourceUtil; import org.dromara.hutool.core.io.stream.BOMInputStream; import org.dromara.hutool.core.io.unit.DataSizeUtil; import org.dromara.hutool.core.lang.Assert; -import org.dromara.hutool.core.lang.func.SerConsumer; -import org.dromara.hutool.core.lang.func.SerFunction; +import org.dromara.hutool.core.func.SerConsumer; +import org.dromara.hutool.core.func.SerFunction; import org.dromara.hutool.core.net.url.URLUtil; import org.dromara.hutool.core.reflect.ClassUtil; import org.dromara.hutool.core.regex.ReUtil; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileWrapper.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileWrapper.java index aebee7402..f6741739a 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileWrapper.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileWrapper.java @@ -12,7 +12,7 @@ package org.dromara.hutool.core.io.file; -import org.dromara.hutool.core.lang.func.Wrapper; +import org.dromara.hutool.core.func.Wrapper; import org.dromara.hutool.core.util.CharsetUtil; import java.io.File; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/LineReadWatcher.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/LineReadWatcher.java index f592d85c7..e684b5051 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/LineReadWatcher.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/LineReadWatcher.java @@ -14,7 +14,7 @@ package org.dromara.hutool.core.io.file; import org.dromara.hutool.core.io.IORuntimeException; import org.dromara.hutool.core.io.watch.SimpleWatcher; -import org.dromara.hutool.core.lang.func.SerConsumer; +import org.dromara.hutool.core.func.SerConsumer; import java.io.IOException; import java.io.RandomAccessFile; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/Tailer.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/Tailer.java index 15d3a13f6..72dd20010 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/Tailer.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/Tailer.java @@ -17,7 +17,7 @@ import org.dromara.hutool.core.exceptions.UtilException; import org.dromara.hutool.core.io.IORuntimeException; import org.dromara.hutool.core.io.IoUtil; import org.dromara.hutool.core.lang.Console; -import org.dromara.hutool.core.lang.func.SerConsumer; +import org.dromara.hutool.core.func.SerConsumer; import org.dromara.hutool.core.util.CharUtil; import org.dromara.hutool.core.util.CharsetUtil; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/watch/WatchServer.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/watch/WatchServer.java index 868f13833..98e5ed1e5 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/watch/WatchServer.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/watch/WatchServer.java @@ -13,7 +13,7 @@ package org.dromara.hutool.core.io.watch; import org.dromara.hutool.core.io.IoUtil; -import org.dromara.hutool.core.lang.func.SerBiConsumer; +import org.dromara.hutool.core.func.SerBiConsumer; import org.dromara.hutool.core.array.ArrayUtil; import java.io.Closeable; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/Opt.java b/hutool-core/src/main/java/org/dromara/hutool/core/lang/Opt.java index 6be44df98..9d68a8ae3 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/Opt.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/lang/Opt.java @@ -12,7 +12,7 @@ package org.dromara.hutool.core.lang; import org.dromara.hutool.core.collection.CollUtil; -import org.dromara.hutool.core.lang.func.SerSupplier; +import org.dromara.hutool.core.func.SerSupplier; import org.dromara.hutool.core.text.StrUtil; import java.util.Collection; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/Singleton.java b/hutool-core/src/main/java/org/dromara/hutool/core/lang/Singleton.java index 786a03e74..f4edb246b 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/Singleton.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/lang/Singleton.java @@ -13,7 +13,7 @@ package org.dromara.hutool.core.lang; import org.dromara.hutool.core.classloader.ClassLoaderUtil; -import org.dromara.hutool.core.lang.func.SerSupplier; +import org.dromara.hutool.core.func.SerSupplier; import org.dromara.hutool.core.map.SafeConcurrentHashMap; import org.dromara.hutool.core.reflect.ConstructorUtil; import org.dromara.hutool.core.text.StrUtil; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/builder/GenericBuilder.java b/hutool-core/src/main/java/org/dromara/hutool/core/lang/builder/GenericBuilder.java index 3e20bd53d..a172a79aa 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/builder/GenericBuilder.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/lang/builder/GenericBuilder.java @@ -12,7 +12,7 @@ package org.dromara.hutool.core.lang.builder; -import org.dromara.hutool.core.lang.func.SerConsumer3; +import org.dromara.hutool.core.func.SerConsumer3; import java.util.ArrayList; import java.util.List; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/range/FiniteBound.java b/hutool-core/src/main/java/org/dromara/hutool/core/lang/range/FiniteBound.java index 8a182d699..c34649fe6 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/range/FiniteBound.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/lang/range/FiniteBound.java @@ -38,7 +38,7 @@ class FiniteBound> implements Bound { * 构造 * * @param value 边界值 - * @param type 边界类型 + * @param type 边界类型 */ FiniteBound(final T value, final BoundType type) { this.value = value; @@ -142,7 +142,8 @@ class FiniteBound> implements Bound { @Override public BoundedRange toRange() { return getType().isLowerBound() ? - new BoundedRange<>(this, Bound.noneUpperBound()) : new BoundedRange<>(Bound.noneLowerBound(), this); + new BoundedRange<>(this, Bound.noneUpperBound()) + : new BoundedRange<>(Bound.noneLowerBound(), this); } /** @@ -159,7 +160,7 @@ class FiniteBound> implements Bound { if (o == null || getClass() != o.getClass()) { return false; } - final FiniteBound that = (FiniteBound)o; + final FiniteBound that = (FiniteBound) o; return value.equals(that.value) && type == that.type; } @@ -181,7 +182,7 @@ class FiniteBound> implements Bound { @Override public String toString() { return CharSequenceUtil.format( - "{x | x {} {}}", type.getOperator(), value + "{x | x {} {}}", type.getOperator(), value ); } diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/map/Dict.java b/hutool-core/src/main/java/org/dromara/hutool/core/map/Dict.java index f807710a2..a8a462bde 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/map/Dict.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/map/Dict.java @@ -19,10 +19,10 @@ import org.dromara.hutool.core.collection.set.SetUtil; import org.dromara.hutool.core.convert.Convert; import org.dromara.hutool.core.exceptions.CloneRuntimeException; import org.dromara.hutool.core.lang.Assert; -import org.dromara.hutool.core.lang.func.LambdaInfo; -import org.dromara.hutool.core.lang.func.LambdaUtil; -import org.dromara.hutool.core.lang.func.SerFunction; -import org.dromara.hutool.core.lang.func.SerSupplier; +import org.dromara.hutool.core.func.LambdaInfo; +import org.dromara.hutool.core.func.LambdaUtil; +import org.dromara.hutool.core.func.SerFunction; +import org.dromara.hutool.core.func.SerSupplier; import org.dromara.hutool.core.lang.getter.TypeGetter; import java.lang.reflect.Type; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/map/LinkedForestMap.java b/hutool-core/src/main/java/org/dromara/hutool/core/map/LinkedForestMap.java index 65ea8e03d..ef965fc30 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/map/LinkedForestMap.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/map/LinkedForestMap.java @@ -15,7 +15,7 @@ package org.dromara.hutool.core.map; import org.dromara.hutool.core.collection.CollUtil; import org.dromara.hutool.core.collection.ListUtil; import org.dromara.hutool.core.lang.Assert; -import org.dromara.hutool.core.lang.func.Wrapper; +import org.dromara.hutool.core.func.Wrapper; import org.dromara.hutool.core.reflect.ClassUtil; import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.util.ObjUtil; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/map/MapWrapper.java b/hutool-core/src/main/java/org/dromara/hutool/core/map/MapWrapper.java index 9d65d665b..c5ffae14b 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/map/MapWrapper.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/map/MapWrapper.java @@ -13,7 +13,7 @@ package org.dromara.hutool.core.map; import org.dromara.hutool.core.lang.Assert; -import org.dromara.hutool.core.lang.func.Wrapper; +import org.dromara.hutool.core.func.Wrapper; import org.dromara.hutool.core.util.ObjUtil; import java.io.IOException; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/map/multi/CollectionValueMap.java b/hutool-core/src/main/java/org/dromara/hutool/core/map/multi/CollectionValueMap.java index d3dae5649..f280ebcd9 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/map/multi/CollectionValueMap.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/map/multi/CollectionValueMap.java @@ -12,7 +12,7 @@ package org.dromara.hutool.core.map.multi; -import org.dromara.hutool.core.lang.func.SerSupplier; +import org.dromara.hutool.core.func.SerSupplier; import java.util.ArrayList; import java.util.Collection; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/map/multi/Table.java b/hutool-core/src/main/java/org/dromara/hutool/core/map/multi/Table.java index 03bce62da..2648bb28e 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/map/multi/Table.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/map/multi/Table.java @@ -14,7 +14,7 @@ package org.dromara.hutool.core.map.multi; import org.dromara.hutool.core.collection.ListUtil; import org.dromara.hutool.core.lang.Opt; -import org.dromara.hutool.core.lang.func.SerConsumer3; +import org.dromara.hutool.core.func.SerConsumer3; import org.dromara.hutool.core.map.MapUtil; import java.util.ArrayList; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/reflect/MethodHandleUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/reflect/MethodHandleUtil.java index 25c53d152..e80777091 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/reflect/MethodHandleUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/reflect/MethodHandleUtil.java @@ -15,13 +15,9 @@ package org.dromara.hutool.core.reflect; import org.dromara.hutool.core.exceptions.UtilException; import org.dromara.hutool.core.lang.Assert; import org.dromara.hutool.core.reflect.lookup.LookupUtil; -import org.dromara.hutool.core.text.StrUtil; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; -import java.lang.invoke.MethodType; -import java.lang.reflect.Constructor; -import java.lang.reflect.Member; import java.lang.reflect.Method; /** @@ -43,103 +39,6 @@ import java.lang.reflect.Method; */ public class MethodHandleUtil { - /** - * 将{@link Method}或者{@link Constructor} 包装为方法句柄{@link MethodHandle} - * - * @param methodOrConstructor {@link Method}或者{@link Constructor} - * @return 方法句柄{@link MethodHandle} - */ - public static MethodHandle unreflect(final Member methodOrConstructor) { - try { - if (methodOrConstructor instanceof Method) { - return LookupUtil.lookup().unreflect((Method) methodOrConstructor); - } else { - return LookupUtil.lookup().unreflectConstructor((Constructor) methodOrConstructor); - } - } catch (final IllegalAccessException e) { - throw new UtilException(e); - } - } - - /** - * 查找指定方法的方法句柄
- * 此方法只会查找: - *
    - *
  • 当前类的方法(包括构造方法和private方法)
  • - *
  • 父类的方法(包括构造方法和private方法)
  • - *
  • 当前类的static方法
  • - *
- * - * @param callerClass 方法所在类或接口 - * @param name 方法名称,{@code null}或者空则查找构造方法 - * @param type 返回类型和参数类型,可以使用{@code MethodType#methodType}构建 - * @return 方法句柄 {@link MethodHandle},{@code null}表示未找到方法 - */ - public static MethodHandle findMethod(final Class callerClass, final String name, final MethodType type) { - if (StrUtil.isBlank(name)) { - return findConstructor(callerClass, type); - } - - MethodHandle handle = null; - final MethodHandles.Lookup lookup = LookupUtil.lookup(callerClass); - try { - handle = lookup.findVirtual(callerClass, name, type); - } catch (final IllegalAccessException | NoSuchMethodException ignore) { - //ignore - } - - // static方法 - if (null == handle) { - try { - handle = lookup.findStatic(callerClass, name, type); - } catch (final IllegalAccessException | NoSuchMethodException ignore) { - //ignore - } - } - - // 特殊方法,包括构造方法、私有方法等 - if (null == handle) { - try { - handle = lookup.findSpecial(callerClass, name, type, callerClass); - } catch (final NoSuchMethodException ignore) { - //ignore - } catch (final IllegalAccessException e) { - throw new UtilException(e); - } - } - - return handle; - } - - /** - * 查找指定的构造方法 - * - * @param callerClass 类 - * @param args 参数 - * @return 构造方法句柄 - */ - public static MethodHandle findConstructor(final Class callerClass, final Class... args) { - return findConstructor(callerClass, MethodType.methodType(void.class, args)); - } - - /** - * 查找指定的构造方法 - * - * @param callerClass 类 - * @param type 参数类型,此处返回类型应为void.class - * @return 构造方法句柄 - */ - public static MethodHandle findConstructor(final Class callerClass, final MethodType type) { - final MethodHandles.Lookup lookup = LookupUtil.lookup(callerClass); - try { - return lookup.findConstructor(callerClass, type); - } catch (final NoSuchMethodException e) { - return null; - } catch (final IllegalAccessException e) { - throw new UtilException(e); - } - } - /** * 执行方法句柄,{@link MethodHandle#invoke(Object...)}包装
* diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/reflect/ModifierUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/reflect/ModifierUtil.java index 2701421c5..e1cd41da7 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/reflect/ModifierUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/reflect/ModifierUtil.java @@ -133,25 +133,45 @@ public class ModifierUtil { } /** - * 是否是Public成员,可检测包括构造、字段和方法 + * 是否是public成员,可检测包括构造、字段和方法 * * @param member 构造、字段或方法 - * @return 是否是Public + * @return 是否是public */ public static boolean isPublic(final Member member) { return Modifier.isPublic(member.getModifiers()); } /** - * 是否是Public类 + * 是否是public类 * * @param clazz 类 - * @return 是否是Public + * @return 是否是public */ public static boolean isPublic(final Class clazz) { return Modifier.isPublic(clazz.getModifiers()); } + /** + * 是否是private成员,可检测包括构造、字段和方法 + * + * @param member 构造、字段或方法 + * @return 是否是private + */ + public static boolean isPrivate(final Member member) { + return Modifier.isPrivate(member.getModifiers()); + } + + /** + * 是否是private类 + * + * @param clazz 类 + * @return 是否是private类 + */ + public static boolean isPrivate(final Class clazz) { + return Modifier.isPrivate(clazz.getModifiers()); + } + /** * 是否是static成员,包括构造、字段或方法 * diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/reflect/lookup/LookupUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/reflect/lookup/LookupUtil.java index e4c20892d..e60c623ce 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/reflect/lookup/LookupUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/reflect/lookup/LookupUtil.java @@ -12,13 +12,20 @@ package org.dromara.hutool.core.reflect.lookup; +import org.dromara.hutool.core.exceptions.UtilException; import org.dromara.hutool.core.lang.caller.CallerUtil; +import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.util.JdkUtil; +import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; +import java.lang.invoke.MethodType; +import java.lang.reflect.Constructor; +import java.lang.reflect.Member; +import java.lang.reflect.Method; /** - * {@link MethodHandles.Lookup}工厂工具,用于创建{@link MethodHandles.Lookup}对象
+ * {@link MethodHandles.Lookup}工具
* {@link MethodHandles.Lookup}是一个方法句柄查找对象,用于在指定类中查找符合给定方法名称、方法类型的方法句柄。 * *

@@ -44,6 +51,8 @@ public class LookupUtil { } } + // region ----- lookup + /** * jdk8中如果直接调用{@link MethodHandles#lookup()}获取到的{@link MethodHandles.Lookup}在调用findSpecial和unreflectSpecial * 时会出现权限不够问题,抛出"no private access for invokespecial"异常,因此针对JDK8及JDK9+分别封装lookup方法。 @@ -64,4 +73,126 @@ public class LookupUtil { public static MethodHandles.Lookup lookup(final Class callerClass) { return factory.lookup(callerClass); } + // endregion + + /** + * 将{@link Method}或者{@link Constructor} 包装为方法句柄{@link MethodHandle} + * + * @param methodOrConstructor {@link Method}或者{@link Constructor} + * @return 方法句柄{@link MethodHandle} + */ + public static MethodHandle unreflect(final Member methodOrConstructor) { + try { + if (methodOrConstructor instanceof Method) { + return lookup().unreflect((Method) methodOrConstructor); + } else { + return lookup().unreflectConstructor((Constructor) methodOrConstructor); + } + } catch (final IllegalAccessException e) { + throw new UtilException(e); + } + } + + // region ----- findMethod + /** + * 查找指定方法的方法句柄
+ * 此方法只会查找: + *

    + *
  • 当前类的方法(包括构造方法和private方法)
  • + *
  • 父类的方法(包括构造方法和private方法)
  • + *
  • 当前类的static方法
  • + *
+ * + * @param callerClass 方法所在类或接口 + * @param name 方法名称,{@code null}或者空则查找构造方法 + * @param returnType 返回值类型 + * @param argTypes 返回类型和参数类型列表 + * @return 方法句柄 {@link MethodHandle},{@code null}表示未找到方法 + */ + public static MethodHandle findMethod(final Class callerClass, final String name, + final Class returnType, final Class... argTypes) { + return findMethod(callerClass, name, MethodType.methodType(returnType, argTypes)); + } + + /** + * 查找指定方法的方法句柄
+ * 此方法只会查找: + *
    + *
  • 当前类的方法(包括构造方法和private方法)
  • + *
  • 父类的方法(包括构造方法和private方法)
  • + *
  • 当前类的static方法
  • + *
+ * + * @param callerClass 方法所在类或接口 + * @param name 方法名称,{@code null}或者空则查找构造方法 + * @param type 返回类型和参数类型,可以使用{@code MethodType#methodType}构建 + * @return 方法句柄 {@link MethodHandle},{@code null}表示未找到方法 + */ + public static MethodHandle findMethod(final Class callerClass, final String name, final MethodType type) { + if (StrUtil.isBlank(name)) { + return findConstructor(callerClass, type); + } + + MethodHandle handle = null; + final MethodHandles.Lookup lookup = LookupUtil.lookup(callerClass); + try { + handle = lookup.findVirtual(callerClass, name, type); + } catch (final IllegalAccessException | NoSuchMethodException ignore) { + //ignore + } + + // static方法 + if (null == handle) { + try { + handle = lookup.findStatic(callerClass, name, type); + } catch (final IllegalAccessException | NoSuchMethodException ignore) { + //ignore + } + } + + // 特殊方法,包括构造方法、私有方法等 + if (null == handle) { + try { + handle = lookup.findSpecial(callerClass, name, type, callerClass); + } catch (final NoSuchMethodException ignore) { + //ignore + } catch (final IllegalAccessException e) { + throw new UtilException(e); + } + } + + return handle; + } + // endregion + + // region ----- findConstructor + /** + * 查找指定的构造方法 + * + * @param callerClass 类 + * @param argTypes 参数类型列表 + * @return 构造方法句柄 + */ + public static MethodHandle findConstructor(final Class callerClass, final Class... argTypes) { + return findConstructor(callerClass, MethodType.methodType(void.class, argTypes)); + } + + /** + * 查找指定的构造方法 + * + * @param callerClass 类 + * @param type 参数类型,此处返回类型应为void.class + * @return 构造方法句柄 + */ + public static MethodHandle findConstructor(final Class callerClass, final MethodType type) { + final MethodHandles.Lookup lookup = LookupUtil.lookup(callerClass); + try { + return lookup.findConstructor(callerClass, type); + } catch (final NoSuchMethodException e) { + return null; + } catch (final IllegalAccessException e) { + throw new UtilException(e); + } + } + // endregion } diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/reflect/lookup/package-info.java b/hutool-core/src/main/java/org/dromara/hutool/core/reflect/lookup/package-info.java index c96400540..44ddc649a 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/reflect/lookup/package-info.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/reflect/lookup/package-info.java @@ -11,14 +11,18 @@ */ /** - * {@link java.lang.invoke.MethodHandles.Lookup} 创建封装
+ * {@link java.lang.invoke.MethodHandles.Lookup} 创建封装,以根据不同的条件查找{@link java.lang.invoke.MethodHandles}
+ * + * *

* jdk8中如果直接调用{@link java.lang.invoke.MethodHandles#lookup()}获取到的{@link java.lang.invoke.MethodHandles.Lookup}在调用findSpecial和unreflectSpecial * 时会出现权限不够问题,抛出"no private access for invokespecial"异常,因此针对JDK8及JDK9+分别封装lookup方法。 *

* *

- * 参考: - *

https://blog.csdn.net/u013202238/article/details/108687086

+ * 参考:https://blog.csdn.net/u013202238/article/details/108687086 + * + * @author looly + * @since 6.0.0 */ package org.dromara.hutool.core.reflect.lookup; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/regex/ReUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/regex/ReUtil.java index 220703125..1173aa75d 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/regex/ReUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/regex/ReUtil.java @@ -18,7 +18,7 @@ import org.dromara.hutool.core.comparator.StrLengthComparator; import org.dromara.hutool.core.convert.Convert; import org.dromara.hutool.core.lang.Assert; import org.dromara.hutool.core.lang.Validator; -import org.dromara.hutool.core.lang.func.SerFunction; +import org.dromara.hutool.core.func.SerFunction; import org.dromara.hutool.core.lang.mutable.Mutable; import org.dromara.hutool.core.lang.mutable.MutableObj; import org.dromara.hutool.core.map.MapUtil; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/text/CharSequenceUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/text/CharSequenceUtil.java index d7b50d064..13215794b 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/text/CharSequenceUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/text/CharSequenceUtil.java @@ -16,7 +16,7 @@ import org.dromara.hutool.core.array.ArrayUtil; import org.dromara.hutool.core.collection.CollUtil; import org.dromara.hutool.core.comparator.VersionComparator; import org.dromara.hutool.core.lang.Assert; -import org.dromara.hutool.core.lang.func.SerFunction; +import org.dromara.hutool.core.func.SerFunction; import org.dromara.hutool.core.math.NumberUtil; import org.dromara.hutool.core.regex.ReUtil; import org.dromara.hutool.core.text.finder.CharFinder; @@ -27,7 +27,6 @@ import org.dromara.hutool.core.text.replacer.RangeReplacerByChar; import org.dromara.hutool.core.text.replacer.RangeReplacerByStr; import org.dromara.hutool.core.text.replacer.SearchReplacer; import org.dromara.hutool.core.text.split.SplitUtil; -import org.dromara.hutool.core.util.*; import org.dromara.hutool.core.util.ByteUtil; import org.dromara.hutool.core.util.CharUtil; import org.dromara.hutool.core.util.CharsetUtil; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/text/split/SplitUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/text/split/SplitUtil.java index bac573213..c6cde1851 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/text/split/SplitUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/text/split/SplitUtil.java @@ -19,7 +19,6 @@ import org.dromara.hutool.core.regex.PatternPool; import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.text.finder.*; import org.dromara.hutool.core.util.CharUtil; -import org.dromara.hutool.core.text.finder.*; import java.util.ArrayList; import java.util.List; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/tree/BeanTree.java b/hutool-core/src/main/java/org/dromara/hutool/core/tree/BeanTree.java index fd837fcc5..68f613624 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/tree/BeanTree.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/tree/BeanTree.java @@ -14,12 +14,11 @@ package org.dromara.hutool.core.tree; import org.dromara.hutool.core.collection.CollUtil; import org.dromara.hutool.core.collection.ListUtil; +import org.dromara.hutool.core.func.SerBiConsumer; +import org.dromara.hutool.core.func.SerConsumer; +import org.dromara.hutool.core.func.SerFunction; +import org.dromara.hutool.core.func.SerPredicate; import org.dromara.hutool.core.lang.Opt; -import org.dromara.hutool.core.lang.func.*; -import org.dromara.hutool.core.lang.func.SerBiConsumer; -import org.dromara.hutool.core.lang.func.SerConsumer; -import org.dromara.hutool.core.lang.func.SerFunction; -import org.dromara.hutool.core.lang.func.SerPredicate; import org.dromara.hutool.core.stream.EasyStream; import java.util.ArrayList; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/util/EnumUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/util/EnumUtil.java index 7b777824f..bd92ed915 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/util/EnumUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/util/EnumUtil.java @@ -13,8 +13,8 @@ package org.dromara.hutool.core.util; import org.dromara.hutool.core.lang.Assert; -import org.dromara.hutool.core.lang.func.LambdaUtil; -import org.dromara.hutool.core.lang.func.SerFunction; +import org.dromara.hutool.core.func.LambdaUtil; +import org.dromara.hutool.core.func.SerFunction; import org.dromara.hutool.core.map.MapUtil; import org.dromara.hutool.core.reflect.FieldUtil; import org.dromara.hutool.core.text.StrUtil; diff --git a/hutool-core/src/test/java/org/dromara/hutool/core/io/IoUtilTest.java b/hutool-core/src/test/java/org/dromara/hutool/core/io/IoUtilTest.java index 4ec399b52..cfc25d15c 100644 --- a/hutool-core/src/test/java/org/dromara/hutool/core/io/IoUtilTest.java +++ b/hutool-core/src/test/java/org/dromara/hutool/core/io/IoUtilTest.java @@ -5,7 +5,7 @@ import org.dromara.hutool.core.collection.iter.LineIter; import org.dromara.hutool.core.io.resource.ResourceUtil; import org.dromara.hutool.core.io.stream.EmptyOutputStream; import org.dromara.hutool.core.io.stream.StrInputStream; -import org.dromara.hutool.core.lang.func.SerConsumer; +import org.dromara.hutool.core.func.SerConsumer; import org.dromara.hutool.core.util.CharsetUtil; import org.dromara.hutool.core.util.RandomUtil; import org.junit.jupiter.api.Assertions; diff --git a/hutool-core/src/test/java/org/dromara/hutool/core/lang/func/FunctionPoolTest.java b/hutool-core/src/test/java/org/dromara/hutool/core/lang/func/FunctionPoolTest.java index 78b71eeef..091c0cc25 100644 --- a/hutool-core/src/test/java/org/dromara/hutool/core/lang/func/FunctionPoolTest.java +++ b/hutool-core/src/test/java/org/dromara/hutool/core/lang/func/FunctionPoolTest.java @@ -3,6 +3,7 @@ package org.dromara.hutool.core.lang.func; import org.dromara.hutool.core.collection.ListUtil; import org.dromara.hutool.core.date.DateUtil; import org.dromara.hutool.core.date.StopWatch; +import org.dromara.hutool.core.func.FunctionPool; import org.dromara.hutool.core.util.RandomUtil; import org.junit.jupiter.api.Test; diff --git a/hutool-core/src/test/java/org/dromara/hutool/core/lang/func/LambdaFactoryTest.java b/hutool-core/src/test/java/org/dromara/hutool/core/lang/func/LambdaFactoryTest.java index 85534f003..7a3280e22 100644 --- a/hutool-core/src/test/java/org/dromara/hutool/core/lang/func/LambdaFactoryTest.java +++ b/hutool-core/src/test/java/org/dromara/hutool/core/lang/func/LambdaFactoryTest.java @@ -1,12 +1,14 @@ package org.dromara.hutool.core.lang.func; -import org.dromara.hutool.core.collection.ListUtil; -import org.dromara.hutool.core.reflect.ConstructorUtil; -import org.dromara.hutool.core.reflect.MethodHandleUtil; import lombok.Data; import lombok.Getter; import lombok.Setter; import lombok.SneakyThrows; +import org.dromara.hutool.core.collection.ListUtil; +import org.dromara.hutool.core.func.LambdaFactory; +import org.dromara.hutool.core.func.SerSupplier; +import org.dromara.hutool.core.reflect.ConstructorUtil; +import org.dromara.hutool.core.reflect.lookup.LookupUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -143,7 +145,7 @@ public class LambdaFactoryTest { something.setId(1L); something.setName("name"); final Method getByReflect = Something.class.getMethod("getId"); - final MethodHandle getByMh = MethodHandleUtil.findMethod(Something.class, "getId", MethodType.methodType(Long.class)); + final MethodHandle getByMh = LookupUtil.findMethod(Something.class, "getId", MethodType.methodType(Long.class)); final Function getByProxy = MethodHandleProxies.asInterfaceInstance(Function.class, MethodHandles.lookup().unreflect(getByReflect)); final Function getByLambda = LambdaFactory.build(Function.class, getByReflect); final Task lambdaTask = new Task("lambda", () -> getByLambda.apply(something)); @@ -230,7 +232,7 @@ public class LambdaFactoryTest { something.setId(1L); something.setName("name"); final Method setByReflect = Something.class.getMethod("setName", String.class); - final MethodHandle setByMh = MethodHandleUtil.findMethod(Something.class, "setName", MethodType.methodType(Void.TYPE, String.class)); + final MethodHandle setByMh = LookupUtil.findMethod(Something.class, "setName", MethodType.methodType(Void.TYPE, String.class)); final BiConsumer setByProxy = MethodHandleProxies.asInterfaceInstance(BiConsumer.class, setByMh); final BiConsumer setByLambda = LambdaFactory.build(BiConsumer.class, setByReflect); final String name = "name1"; diff --git a/hutool-core/src/test/java/org/dromara/hutool/core/lang/func/LambdaUtilTest.java b/hutool-core/src/test/java/org/dromara/hutool/core/lang/func/LambdaUtilTest.java index 8e7dca83a..1b21b1648 100644 --- a/hutool-core/src/test/java/org/dromara/hutool/core/lang/func/LambdaUtilTest.java +++ b/hutool-core/src/test/java/org/dromara/hutool/core/lang/func/LambdaUtilTest.java @@ -1,5 +1,6 @@ package org.dromara.hutool.core.lang.func; +import org.dromara.hutool.core.func.*; import org.dromara.hutool.core.lang.Tuple; import org.dromara.hutool.core.reflect.MethodUtil; import lombok.AllArgsConstructor; diff --git a/hutool-core/src/test/java/org/dromara/hutool/core/lang/func/PredicateUtilTest.java b/hutool-core/src/test/java/org/dromara/hutool/core/lang/func/PredicateUtilTest.java index 9445ee61d..213a64117 100644 --- a/hutool-core/src/test/java/org/dromara/hutool/core/lang/func/PredicateUtilTest.java +++ b/hutool-core/src/test/java/org/dromara/hutool/core/lang/func/PredicateUtilTest.java @@ -1,6 +1,7 @@ package org.dromara.hutool.core.lang.func; import org.dromara.hutool.core.collection.set.SetUtil; +import org.dromara.hutool.core.func.PredicateUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-core/src/test/java/org/dromara/hutool/core/reflect/MethodHandleUtilTest.java b/hutool-core/src/test/java/org/dromara/hutool/core/reflect/MethodHandleUtilTest.java index d9b9ff019..e2ad88775 100644 --- a/hutool-core/src/test/java/org/dromara/hutool/core/reflect/MethodHandleUtilTest.java +++ b/hutool-core/src/test/java/org/dromara/hutool/core/reflect/MethodHandleUtilTest.java @@ -4,8 +4,6 @@ import org.dromara.hutool.core.classloader.ClassLoaderUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import java.lang.invoke.MethodHandle; -import java.lang.invoke.MethodType; import java.lang.reflect.Method; import java.lang.reflect.Proxy; @@ -66,65 +64,6 @@ public class MethodHandleUtilTest { Assertions.assertEquals("Duck 78", result); } - @Test - public void findMethodTest() throws Throwable { - MethodHandle handle = MethodHandleUtil.findMethod(Duck.class, "quack", - MethodType.methodType(String.class)); - Assertions.assertNotNull(handle); - // 对象方法自行需要绑定对象或者传入对象参数 - final String invoke = (String) handle.invoke(new BigDuck()); - Assertions.assertEquals("Quack", invoke); - - // 对象的方法获取 - handle = MethodHandleUtil.findMethod(BigDuck.class, "getSize", - MethodType.methodType(int.class)); - Assertions.assertNotNull(handle); - final int invokeInt = (int) handle.invoke(new BigDuck()); - Assertions.assertEquals(36, invokeInt); - } - - @Test - public void findStaticMethodTest() throws Throwable { - final MethodHandle handle = MethodHandleUtil.findMethod(Duck.class, "getDuck", - MethodType.methodType(String.class, int.class)); - Assertions.assertNotNull(handle); - - // static 方法执行不需要绑定或者传入对象,直接传入参数即可 - final String invoke = (String) handle.invoke(12); - Assertions.assertEquals("Duck 12", invoke); - } - - @Test - public void findPrivateMethodTest() throws Throwable { - final MethodHandle handle = MethodHandleUtil.findMethod(BigDuck.class, "getPrivateValue", - MethodType.methodType(String.class)); - Assertions.assertNotNull(handle); - - final String invoke = (String) handle.invoke(new BigDuck()); - Assertions.assertEquals("private value", invoke); - } - - @Test - public void findSuperMethodTest() throws Throwable { - // 查找父类的方法 - final MethodHandle handle = MethodHandleUtil.findMethod(BigDuck.class, "quack", - MethodType.methodType(String.class)); - Assertions.assertNotNull(handle); - - final String invoke = (String) handle.invoke(new BigDuck()); - Assertions.assertEquals("Quack", invoke); - } - - @Test - public void findPrivateStaticMethodTest() throws Throwable { - final MethodHandle handle = MethodHandleUtil.findMethod(BigDuck.class, "getPrivateStaticValue", - MethodType.methodType(String.class)); - Assertions.assertNotNull(handle); - - final String invoke = (String) handle.invoke(); - Assertions.assertEquals("private static value", invoke); - } - interface Duck { default String quack() { return "Quack"; diff --git a/hutool-core/src/test/java/org/dromara/hutool/core/reflect/lookup/LookupUtilTest.java b/hutool-core/src/test/java/org/dromara/hutool/core/reflect/lookup/LookupUtilTest.java new file mode 100644 index 000000000..35191515b --- /dev/null +++ b/hutool-core/src/test/java/org/dromara/hutool/core/reflect/lookup/LookupUtilTest.java @@ -0,0 +1,106 @@ +/* + * Copyright (c) 2023 looly(loolly@aliyun.com) + * Hutool is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * http://license.coscl.org.cn/MulanPSL2 + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + */ + +package org.dromara.hutool.core.reflect.lookup; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.lang.invoke.MethodHandle; +import java.lang.invoke.MethodType; + +public class LookupUtilTest { + @Test + public void findMethodTest() throws Throwable { + MethodHandle handle = LookupUtil.findMethod(Duck.class, "quack", + MethodType.methodType(String.class)); + Assertions.assertNotNull(handle); + // 对象方法自行需要绑定对象或者传入对象参数 + final String invoke = (String) handle.invoke(new BigDuck()); + Assertions.assertEquals("Quack", invoke); + + // 对象的方法获取 + handle = LookupUtil.findMethod(BigDuck.class, "getSize", + MethodType.methodType(int.class)); + Assertions.assertNotNull(handle); + final int invokeInt = (int) handle.invoke(new BigDuck()); + Assertions.assertEquals(36, invokeInt); + } + + @Test + public void findStaticMethodTest() throws Throwable { + final MethodHandle handle = LookupUtil.findMethod(Duck.class, "getDuck", + MethodType.methodType(String.class, int.class)); + Assertions.assertNotNull(handle); + + // static 方法执行不需要绑定或者传入对象,直接传入参数即可 + final String invoke = (String) handle.invoke(12); + Assertions.assertEquals("Duck 12", invoke); + } + + @Test + public void findPrivateMethodTest() throws Throwable { + final MethodHandle handle = LookupUtil.findMethod(BigDuck.class, "getPrivateValue", + MethodType.methodType(String.class)); + Assertions.assertNotNull(handle); + + final String invoke = (String) handle.invoke(new BigDuck()); + Assertions.assertEquals("private value", invoke); + } + + @Test + public void findSuperMethodTest() throws Throwable { + // 查找父类的方法 + final MethodHandle handle = LookupUtil.findMethod(BigDuck.class, "quack", + MethodType.methodType(String.class)); + Assertions.assertNotNull(handle); + + final String invoke = (String) handle.invoke(new BigDuck()); + Assertions.assertEquals("Quack", invoke); + } + + @Test + public void findPrivateStaticMethodTest() throws Throwable { + final MethodHandle handle = LookupUtil.findMethod(BigDuck.class, "getPrivateStaticValue", + MethodType.methodType(String.class)); + Assertions.assertNotNull(handle); + + final String invoke = (String) handle.invoke(); + Assertions.assertEquals("private static value", invoke); + } + + interface Duck { + default String quack() { + return "Quack"; + } + + static String getDuck(final int count){ + return "Duck " + count; + } + } + + static class BigDuck implements Duck { + public int getSize(){ + return 36; + } + + @SuppressWarnings("unused") + private String getPrivateValue(){ + return "private value"; + } + + @SuppressWarnings("unused") + private static String getPrivateStaticValue(){ + return "private static value"; + } + } +} diff --git a/hutool-crypto/src/main/java/org/dromara/hutool/crypto/CipherWrapper.java b/hutool-crypto/src/main/java/org/dromara/hutool/crypto/CipherWrapper.java index 4715bc731..a41013267 100644 --- a/hutool-crypto/src/main/java/org/dromara/hutool/crypto/CipherWrapper.java +++ b/hutool-crypto/src/main/java/org/dromara/hutool/crypto/CipherWrapper.java @@ -12,7 +12,7 @@ package org.dromara.hutool.crypto; -import org.dromara.hutool.core.lang.func.Wrapper; +import org.dromara.hutool.core.func.Wrapper; import javax.crypto.Cipher; import java.security.InvalidAlgorithmParameterException; diff --git a/hutool-db/src/main/java/org/dromara/hutool/db/AbstractDb.java b/hutool-db/src/main/java/org/dromara/hutool/db/AbstractDb.java index 4f49ecdf7..cfda6930e 100644 --- a/hutool-db/src/main/java/org/dromara/hutool/db/AbstractDb.java +++ b/hutool-db/src/main/java/org/dromara/hutool/db/AbstractDb.java @@ -12,12 +12,10 @@ package org.dromara.hutool.db; -import org.dromara.hutool.core.lang.func.SerFunction; +import org.dromara.hutool.core.func.SerFunction; import org.dromara.hutool.db.dialect.Dialect; import org.dromara.hutool.db.handler.*; import org.dromara.hutool.db.sql.*; -import org.dromara.hutool.db.handler.*; -import org.dromara.hutool.db.sql.*; import org.dromara.hutool.db.sql.Condition.LikeType; import javax.sql.DataSource; diff --git a/hutool-db/src/main/java/org/dromara/hutool/db/ActiveEntity.java b/hutool-db/src/main/java/org/dromara/hutool/db/ActiveEntity.java index 9513c142f..c264b5c7e 100644 --- a/hutool-db/src/main/java/org/dromara/hutool/db/ActiveEntity.java +++ b/hutool-db/src/main/java/org/dromara/hutool/db/ActiveEntity.java @@ -12,7 +12,7 @@ package org.dromara.hutool.db; -import org.dromara.hutool.core.lang.func.SerSupplier; +import org.dromara.hutool.core.func.SerSupplier; import org.dromara.hutool.core.map.MapUtil; import java.util.Collection; diff --git a/hutool-db/src/main/java/org/dromara/hutool/db/Db.java b/hutool-db/src/main/java/org/dromara/hutool/db/Db.java index d3d474c90..e5b7faacb 100644 --- a/hutool-db/src/main/java/org/dromara/hutool/db/Db.java +++ b/hutool-db/src/main/java/org/dromara/hutool/db/Db.java @@ -12,7 +12,7 @@ package org.dromara.hutool.db; -import org.dromara.hutool.core.lang.func.SerConsumer; +import org.dromara.hutool.core.func.SerConsumer; import org.dromara.hutool.db.dialect.Dialect; import org.dromara.hutool.db.dialect.DialectFactory; import org.dromara.hutool.db.ds.DSUtil; diff --git a/hutool-db/src/main/java/org/dromara/hutool/db/Entity.java b/hutool-db/src/main/java/org/dromara/hutool/db/Entity.java index f98b02d7b..d5be52daf 100644 --- a/hutool-db/src/main/java/org/dromara/hutool/db/Entity.java +++ b/hutool-db/src/main/java/org/dromara/hutool/db/Entity.java @@ -14,7 +14,7 @@ package org.dromara.hutool.db; import org.dromara.hutool.core.collection.CollUtil; import org.dromara.hutool.core.collection.set.SetUtil; -import org.dromara.hutool.core.lang.func.SerSupplier; +import org.dromara.hutool.core.func.SerSupplier; import org.dromara.hutool.core.map.Dict; import org.dromara.hutool.core.reflect.MethodUtil; import org.dromara.hutool.core.text.StrUtil; diff --git a/hutool-db/src/main/java/org/dromara/hutool/db/Session.java b/hutool-db/src/main/java/org/dromara/hutool/db/Session.java index a636a1985..eec55048c 100644 --- a/hutool-db/src/main/java/org/dromara/hutool/db/Session.java +++ b/hutool-db/src/main/java/org/dromara/hutool/db/Session.java @@ -12,7 +12,7 @@ package org.dromara.hutool.db; -import org.dromara.hutool.core.lang.func.SerConsumer; +import org.dromara.hutool.core.func.SerConsumer; import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.db.dialect.Dialect; import org.dromara.hutool.db.dialect.DialectFactory; diff --git a/hutool-db/src/main/java/org/dromara/hutool/db/ds/DSWrapper.java b/hutool-db/src/main/java/org/dromara/hutool/db/ds/DSWrapper.java index ed61ad3fd..0bacce379 100644 --- a/hutool-db/src/main/java/org/dromara/hutool/db/ds/DSWrapper.java +++ b/hutool-db/src/main/java/org/dromara/hutool/db/ds/DSWrapper.java @@ -14,7 +14,7 @@ package org.dromara.hutool.db.ds; import org.dromara.hutool.core.exceptions.CloneRuntimeException; import org.dromara.hutool.core.io.IoUtil; -import org.dromara.hutool.core.lang.func.Wrapper; +import org.dromara.hutool.core.func.Wrapper; import javax.sql.DataSource; import java.io.Closeable; diff --git a/hutool-db/src/main/java/org/dromara/hutool/db/sql/SqlExecutor.java b/hutool-db/src/main/java/org/dromara/hutool/db/sql/SqlExecutor.java index 4f7a8719e..8b300df76 100644 --- a/hutool-db/src/main/java/org/dromara/hutool/db/sql/SqlExecutor.java +++ b/hutool-db/src/main/java/org/dromara/hutool/db/sql/SqlExecutor.java @@ -14,7 +14,7 @@ package org.dromara.hutool.db.sql; import org.dromara.hutool.core.collection.iter.ArrayIter; import org.dromara.hutool.core.io.IoUtil; -import org.dromara.hutool.core.lang.func.SerFunction; +import org.dromara.hutool.core.func.SerFunction; import org.dromara.hutool.db.DbRuntimeException; import org.dromara.hutool.db.StatementUtil; import org.dromara.hutool.db.handler.RsHandler; diff --git a/hutool-db/src/main/java/org/dromara/hutool/db/sql/StatementWrapper.java b/hutool-db/src/main/java/org/dromara/hutool/db/sql/StatementWrapper.java index 1d4cfaba6..01078f4ed 100644 --- a/hutool-db/src/main/java/org/dromara/hutool/db/sql/StatementWrapper.java +++ b/hutool-db/src/main/java/org/dromara/hutool/db/sql/StatementWrapper.java @@ -12,7 +12,7 @@ package org.dromara.hutool.db.sql; -import org.dromara.hutool.core.lang.func.Wrapper; +import org.dromara.hutool.core.func.Wrapper; import java.io.InputStream; import java.io.Reader; diff --git a/hutool-json/src/main/java/org/dromara/hutool/json/JSONObject.java b/hutool-json/src/main/java/org/dromara/hutool/json/JSONObject.java index 373022621..9db938564 100644 --- a/hutool-json/src/main/java/org/dromara/hutool/json/JSONObject.java +++ b/hutool-json/src/main/java/org/dromara/hutool/json/JSONObject.java @@ -13,10 +13,10 @@ package org.dromara.hutool.json; import org.dromara.hutool.core.collection.CollUtil; -import org.dromara.hutool.core.lang.func.LambdaInfo; -import org.dromara.hutool.core.lang.func.LambdaUtil; -import org.dromara.hutool.core.lang.func.SerFunction; -import org.dromara.hutool.core.lang.func.SerSupplier; +import org.dromara.hutool.core.func.LambdaInfo; +import org.dromara.hutool.core.func.LambdaUtil; +import org.dromara.hutool.core.func.SerFunction; +import org.dromara.hutool.core.func.SerSupplier; import org.dromara.hutool.core.lang.mutable.MutableEntry; import org.dromara.hutool.core.map.MapUtil; import org.dromara.hutool.core.map.MapWrapper; diff --git a/hutool-json/src/main/java/org/dromara/hutool/json/serialize/JSONStringer.java b/hutool-json/src/main/java/org/dromara/hutool/json/serialize/JSONStringer.java index 2f9444fa2..a235c4c33 100644 --- a/hutool-json/src/main/java/org/dromara/hutool/json/serialize/JSONStringer.java +++ b/hutool-json/src/main/java/org/dromara/hutool/json/serialize/JSONStringer.java @@ -12,7 +12,7 @@ package org.dromara.hutool.json.serialize; -import org.dromara.hutool.core.lang.func.Wrapper; +import org.dromara.hutool.core.func.Wrapper; /** * {@code JSONString}接口定义了一个{@code toJSONString()}
diff --git a/hutool-poi/src/main/java/org/dromara/hutool/poi/csv/CsvBaseReader.java b/hutool-poi/src/main/java/org/dromara/hutool/poi/csv/CsvBaseReader.java index fca166876..b8c03438c 100644 --- a/hutool-poi/src/main/java/org/dromara/hutool/poi/csv/CsvBaseReader.java +++ b/hutool-poi/src/main/java/org/dromara/hutool/poi/csv/CsvBaseReader.java @@ -16,7 +16,7 @@ import org.dromara.hutool.core.io.file.FileUtil; import org.dromara.hutool.core.io.IORuntimeException; import org.dromara.hutool.core.io.IoUtil; import org.dromara.hutool.core.lang.Assert; -import org.dromara.hutool.core.lang.func.SerConsumer; +import org.dromara.hutool.core.func.SerConsumer; import org.dromara.hutool.core.util.CharsetUtil; import org.dromara.hutool.core.util.ObjUtil; diff --git a/hutool-poi/src/main/java/org/dromara/hutool/poi/csv/CsvReader.java b/hutool-poi/src/main/java/org/dromara/hutool/poi/csv/CsvReader.java index e3779a434..40508b23e 100644 --- a/hutool-poi/src/main/java/org/dromara/hutool/poi/csv/CsvReader.java +++ b/hutool-poi/src/main/java/org/dromara/hutool/poi/csv/CsvReader.java @@ -15,7 +15,7 @@ package org.dromara.hutool.poi.csv; import org.dromara.hutool.core.io.IORuntimeException; import org.dromara.hutool.core.io.IoUtil; import org.dromara.hutool.core.io.file.FileUtil; -import org.dromara.hutool.core.lang.func.SerConsumer; +import org.dromara.hutool.core.func.SerConsumer; import java.io.Closeable; import java.io.File; diff --git a/hutool-poi/src/main/java/org/dromara/hutool/poi/excel/ExcelReader.java b/hutool-poi/src/main/java/org/dromara/hutool/poi/excel/ExcelReader.java index 3764fe0fe..3bbf1f315 100644 --- a/hutool-poi/src/main/java/org/dromara/hutool/poi/excel/ExcelReader.java +++ b/hutool-poi/src/main/java/org/dromara/hutool/poi/excel/ExcelReader.java @@ -14,7 +14,7 @@ package org.dromara.hutool.poi.excel; import org.dromara.hutool.core.io.file.FileUtil; import org.dromara.hutool.core.lang.Assert; -import org.dromara.hutool.core.lang.func.SerBiConsumer; +import org.dromara.hutool.core.func.SerBiConsumer; import org.dromara.hutool.poi.excel.cell.CellEditor; import org.dromara.hutool.poi.excel.cell.CellUtil; import org.dromara.hutool.poi.excel.reader.BeanSheetReader; diff --git a/hutool-poi/src/test/java/org/dromara/hutool/poi/csv/Issue2783Test.java b/hutool-poi/src/test/java/org/dromara/hutool/poi/csv/Issue2783Test.java index 802137f11..814a154cc 100644 --- a/hutool-poi/src/test/java/org/dromara/hutool/poi/csv/Issue2783Test.java +++ b/hutool-poi/src/test/java/org/dromara/hutool/poi/csv/Issue2783Test.java @@ -1,7 +1,7 @@ package org.dromara.hutool.poi.csv; import org.dromara.hutool.core.io.file.FileUtil; -import org.dromara.hutool.core.lang.func.SerConsumer; +import org.dromara.hutool.core.func.SerConsumer; import org.dromara.hutool.core.util.CharsetUtil; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; diff --git a/hutool-poi/src/test/java/org/dromara/hutool/poi/excel/ExcelReadTest.java b/hutool-poi/src/test/java/org/dromara/hutool/poi/excel/ExcelReadTest.java index eb98dd6bd..ce4a60d91 100644 --- a/hutool-poi/src/test/java/org/dromara/hutool/poi/excel/ExcelReadTest.java +++ b/hutool-poi/src/test/java/org/dromara/hutool/poi/excel/ExcelReadTest.java @@ -2,7 +2,7 @@ package org.dromara.hutool.poi.excel; import org.dromara.hutool.core.io.resource.ResourceUtil; import org.dromara.hutool.core.lang.Console; -import org.dromara.hutool.core.lang.func.SerBiConsumer; +import org.dromara.hutool.core.func.SerBiConsumer; import org.dromara.hutool.core.map.MapUtil; import org.dromara.hutool.core.util.ObjUtil; import lombok.Data; diff --git a/hutool-setting/src/main/java/org/dromara/hutool/setting/AbsSetting.java b/hutool-setting/src/main/java/org/dromara/hutool/setting/AbsSetting.java index 7461d2edd..8c3ef37dc 100644 --- a/hutool-setting/src/main/java/org/dromara/hutool/setting/AbsSetting.java +++ b/hutool-setting/src/main/java/org/dromara/hutool/setting/AbsSetting.java @@ -15,9 +15,9 @@ package org.dromara.hutool.setting; import org.dromara.hutool.core.bean.BeanUtil; import org.dromara.hutool.core.bean.copier.CopyOptions; import org.dromara.hutool.core.bean.copier.ValueProvider; -import org.dromara.hutool.core.lang.func.LambdaInfo; -import org.dromara.hutool.core.lang.func.LambdaUtil; -import org.dromara.hutool.core.lang.func.SerFunction; +import org.dromara.hutool.core.func.LambdaInfo; +import org.dromara.hutool.core.func.LambdaUtil; +import org.dromara.hutool.core.func.SerFunction; import org.dromara.hutool.core.lang.getter.GroupedTypeGetter; import org.dromara.hutool.core.lang.getter.TypeGetter; import org.dromara.hutool.core.reflect.ConstructorUtil; diff --git a/hutool-setting/src/main/java/org/dromara/hutool/setting/Setting.java b/hutool-setting/src/main/java/org/dromara/hutool/setting/Setting.java index ce22178bf..ae04de879 100644 --- a/hutool-setting/src/main/java/org/dromara/hutool/setting/Setting.java +++ b/hutool-setting/src/main/java/org/dromara/hutool/setting/Setting.java @@ -22,8 +22,8 @@ import org.dromara.hutool.core.io.watch.SimpleWatcher; import org.dromara.hutool.core.io.watch.WatchMonitor; import org.dromara.hutool.core.io.watch.WatchUtil; import org.dromara.hutool.core.lang.Assert; -import org.dromara.hutool.core.lang.func.LambdaUtil; -import org.dromara.hutool.core.lang.func.SerSupplier; +import org.dromara.hutool.core.func.LambdaUtil; +import org.dromara.hutool.core.func.SerSupplier; import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.util.CharUtil; import org.dromara.hutool.core.util.CharsetUtil; diff --git a/hutool-setting/src/main/java/org/dromara/hutool/setting/dialect/Props.java b/hutool-setting/src/main/java/org/dromara/hutool/setting/dialect/Props.java index d4953d450..4546276b0 100644 --- a/hutool-setting/src/main/java/org/dromara/hutool/setting/dialect/Props.java +++ b/hutool-setting/src/main/java/org/dromara/hutool/setting/dialect/Props.java @@ -23,10 +23,10 @@ import org.dromara.hutool.core.io.watch.SimpleWatcher; import org.dromara.hutool.core.io.watch.WatchMonitor; import org.dromara.hutool.core.io.watch.WatchUtil; import org.dromara.hutool.core.lang.Assert; -import org.dromara.hutool.core.lang.func.LambdaInfo; -import org.dromara.hutool.core.lang.func.LambdaUtil; -import org.dromara.hutool.core.lang.func.SerFunction; -import org.dromara.hutool.core.lang.func.SerSupplier; +import org.dromara.hutool.core.func.LambdaInfo; +import org.dromara.hutool.core.func.LambdaUtil; +import org.dromara.hutool.core.func.SerFunction; +import org.dromara.hutool.core.func.SerSupplier; import org.dromara.hutool.core.lang.getter.TypeGetter; import org.dromara.hutool.core.map.MapUtil; import org.dromara.hutool.core.reflect.ConstructorUtil;