This commit is contained in:
Looly 2022-04-28 03:31:23 +08:00
parent 8e2c06c671
commit 75be3ebae4
51 changed files with 113 additions and 103 deletions

View File

@ -1,4 +1,4 @@
package cn.hutool.core.lang;
package cn.hutool.core.cache;
import cn.hutool.core.collection.TransIter;
import cn.hutool.core.lang.func.Func0;

View File

@ -1,13 +1,13 @@
package cn.hutool.core.collection;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.Filter;
import java.util.Iterator;
import java.util.NoSuchElementException;
import java.util.function.Predicate;
/**
* 包装 {@link Iterator}并根据{@link Filter}定义过滤元素输出<br>
* 包装 {@link Iterator}并根据{@link Predicate}定义过滤元素输出<br>
* 类实现来自Apache Commons Collection
*
* @author apache commons, looly
@ -16,7 +16,7 @@ import java.util.NoSuchElementException;
public class FilterIter<E> implements Iterator<E> {
private final Iterator<? extends E> iterator;
private final Filter<? super E> filter;
private final Predicate<? super E> filter;
/**
* 下一个元素
@ -33,7 +33,7 @@ public class FilterIter<E> implements Iterator<E> {
* @param iterator 被包装的{@link Iterator}
* @param filter 过滤函数{@code null}表示不过滤
*/
public FilterIter(final Iterator<? extends E> iterator, final Filter<? super E> filter) {
public FilterIter(final Iterator<? extends E> iterator, final Predicate<? super E> filter) {
this.iterator = Assert.notNull(iterator);
this.filter = filter;
}
@ -74,7 +74,7 @@ public class FilterIter<E> implements Iterator<E> {
*
* @return 过滤函数可能为{@code null}
*/
public Filter<? super E> getFilter() {
public Predicate<? super E> getFilter() {
return filter;
}
@ -84,7 +84,7 @@ public class FilterIter<E> implements Iterator<E> {
private boolean setNextObject() {
while (iterator.hasNext()) {
final E object = iterator.next();
if (null != filter && filter.accept(object)) {
if (null != filter && filter.test(object)) {
nextObject = object;
nextObjectSet = true;
return true;

View File

@ -27,6 +27,7 @@ import java.util.Map.Entry;
import java.util.Objects;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
/**
* {@link Iterable} {@link Iterator} 相关工具类
@ -753,7 +754,7 @@ public class IterUtil {
* @return ArrayList
* @since 5.7.22
*/
public static <E> List<E> filterToList(Iterator<E> iter, Filter<E> filter) {
public static <E> List<E> filterToList(Iterator<E> iter, Predicate<E> filter) {
return toList(filtered(iter, filter));
}
@ -766,7 +767,7 @@ public class IterUtil {
* @return {@link FilterIter}
* @since 5.8.0
*/
public static <E> FilterIter<E> filtered(final Iterator<? extends E> iterator, final Filter<? super E> filter) {
public static <E> FilterIter<E> filtered(final Iterator<? extends E> iterator, final Predicate<? super E> filter) {
return new FilterIter<>(iterator, filter);
}

View File

@ -206,7 +206,7 @@ public class FileCopier extends SrcToDestCopier<File, FileCopier>{
* @throws IORuntimeException IO异常
*/
private void internalCopyDirContent(File src, File dest) throws IORuntimeException {
if (null != copyFilter && false == copyFilter.accept(src)) {
if (null != copyPredicate && false == copyPredicate.test(src)) {
//被过滤的目录跳过
return;
}
@ -249,7 +249,7 @@ public class FileCopier extends SrcToDestCopier<File, FileCopier>{
* @throws IORuntimeException IO异常
*/
private void internalCopyFile(File src, File dest) throws IORuntimeException {
if (null != copyFilter && false == copyFilter.accept(src)) {
if (null != copyPredicate && false == copyPredicate.test(src)) {
//被过滤的文件跳过
return;
}

View File

@ -4,7 +4,6 @@ import cn.hutool.core.collection.EnumerationIter;
import cn.hutool.core.collection.IterUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.lang.Filter;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.ClassLoaderUtil;
import cn.hutool.core.util.StrUtil;
@ -17,6 +16,7 @@ import java.net.URL;
import java.nio.charset.Charset;
import java.util.Enumeration;
import java.util.List;
import java.util.function.Predicate;
/**
* Resource资源工具类
@ -155,7 +155,7 @@ public class ResourceUtil {
* @param filter 过滤器用于过滤不需要的资源{@code null}表示不过滤保留所有元素
* @return 资源列表
*/
public static List<URL> getResources(String resource, Filter<URL> filter) {
public static List<URL> getResources(String resource, Predicate<URL> filter) {
return IterUtil.filterToList(getResourceIter(resource), filter);
}

View File

@ -16,6 +16,7 @@ import java.nio.charset.Charset;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import java.util.function.Predicate;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
@ -48,7 +49,7 @@ public class ClassScanner implements Serializable {
/**
* 过滤器
*/
private final Filter<Class<?>> classFilter;
private final Predicate<Class<?>> classPredicate;
/**
* 编码
*/
@ -151,7 +152,7 @@ public class ClassScanner implements Serializable {
* @return 类集合
* @since 5.7.5
*/
public static Set<Class<?>> scanAllPackage(String packageName, Filter<Class<?>> classFilter) {
public static Set<Class<?>> scanAllPackage(String packageName, Predicate<Class<?>> classFilter) {
return new ClassScanner(packageName, classFilter).scan(true);
}
@ -164,7 +165,7 @@ public class ClassScanner implements Serializable {
* @param classFilter class过滤器过滤掉不需要的class
* @return 类集合
*/
public static Set<Class<?>> scanPackage(String packageName, Filter<Class<?>> classFilter) {
public static Set<Class<?>> scanPackage(String packageName, Predicate<Class<?>> classFilter) {
return new ClassScanner(packageName, classFilter).scan();
}
@ -188,26 +189,26 @@ public class ClassScanner implements Serializable {
* 构造默认UTF-8编码
*
* @param packageName 包名所有包传入""或者null
* @param classFilter 过滤器无需传入null
* @param classPredicate 过滤器无需传入null
*/
public ClassScanner(String packageName, Filter<Class<?>> classFilter) {
this(packageName, classFilter, CharsetUtil.CHARSET_UTF_8);
public ClassScanner(String packageName, Predicate<Class<?>> classPredicate) {
this(packageName, classPredicate, CharsetUtil.CHARSET_UTF_8);
}
/**
* 构造
*
* @param packageName 包名所有包传入""或者null
* @param classFilter 过滤器无需传入null
* @param classPredicate 过滤器无需传入null
* @param charset 编码
*/
public ClassScanner(String packageName, Filter<Class<?>> classFilter, Charset charset) {
public ClassScanner(String packageName, Predicate<Class<?>> classPredicate, Charset charset) {
packageName = StrUtil.nullToEmpty(packageName);
this.packageName = packageName;
this.packageNameWithDot = StrUtil.addSuffixIfNot(packageName, StrUtil.DOT);
this.packageDirName = packageName.replace(CharUtil.DOT, File.separatorChar);
this.packagePath = packageName.replace(CharUtil.DOT, CharUtil.SLASH);
this.classFilter = classFilter;
this.classPredicate = classPredicate;
this.charset = charset;
}
@ -392,8 +393,8 @@ public class ClassScanner implements Serializable {
*/
private void addIfAccept(Class<?> clazz) {
if (null != clazz) {
Filter<Class<?>> classFilter = this.classFilter;
if (classFilter == null || classFilter.accept(clazz)) {
Predicate<Class<?>> classFilter = this.classPredicate;
if (classFilter == null || classFilter.test(clazz)) {
this.classes.add(clazz);
}
}

View File

@ -1,8 +1,7 @@
package cn.hutool.core.lang.copier;
import java.io.Serializable;
import cn.hutool.core.lang.Filter;
import java.util.function.Predicate;
/**
* 复制器抽象类<br>
@ -22,7 +21,7 @@ public abstract class SrcToDestCopier<T, C extends SrcToDestCopier<T, C>> implem
/** 目标 */
protected T dest;
/** 拷贝过滤器,可以过滤掉不需要拷贝的源 */
protected Filter<T> copyFilter;
protected Predicate<T> copyPredicate;
//-------------------------------------------------------------------------------------------------------- Getters and Setters start
/**
@ -68,18 +67,18 @@ public abstract class SrcToDestCopier<T, C extends SrcToDestCopier<T, C>> implem
* 获得过滤器
* @return 过滤器
*/
public Filter<T> getCopyFilter() {
return copyFilter;
public Predicate<T> getCopyPredicate() {
return copyPredicate;
}
/**
* 设置过滤器
*
* @param copyFilter 过滤器
* @param copyPredicate 过滤器
* @return this
*/
@SuppressWarnings("unchecked")
public C setCopyFilter(Filter<T> copyFilter) {
this.copyFilter = copyFilter;
public C setCopyPredicate(Predicate<T> copyPredicate) {
this.copyPredicate = copyPredicate;
return (C)this;
}
//-------------------------------------------------------------------------------------------------------- Getters and Setters end

View File

@ -1,6 +1,6 @@
package cn.hutool.core.lang.generator;
import cn.hutool.core.lang.ObjectId;
import cn.hutool.core.lang.id.ObjectId;
/**
* ObjectId生成器

View File

@ -1,6 +1,6 @@
package cn.hutool.core.lang.generator;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.lang.id.Snowflake;
/**
* Snowflake生成器<br>

View File

@ -1,7 +1,4 @@
package cn.hutool.core.lang;
import cn.hutool.core.lang.hash.Hash32;
import cn.hutool.core.util.HashUtil;
package cn.hutool.core.lang.hash;
import java.io.Serializable;
import java.util.Collection;
@ -10,24 +7,31 @@ import java.util.TreeMap;
/**
* 一致性Hash算法
* 算法详解http://blog.csdn.net/sparkliang/article/details/5279393
* 算法实现https://weblogs.java.net/blog/2007/11/27/consistent-hashing
* @author xiaoleilu
* 算法详解<a href="http://blog.csdn.net/sparkliang/article/details/5279393">http://blog.csdn.net/sparkliang/article/details/5279393</a>
* 算法实现<a href="https://weblogs.java.net/blog/2007/11/27/consistent-hashing">https://weblogs.java.net/blog/2007/11/27/consistent-hashing</a>
*
* @param <T> 节点类型
* @author xiaoleilu
*/
public class ConsistentHash<T> implements Serializable {
private static final long serialVersionUID = 1L;
/** Hash计算对象用于自定义hash算法 */
/**
* Hash计算对象用于自定义hash算法
*/
Hash32<Object> hashFunc;
/** 复制的节点个数 */
/**
* 复制的节点个数
*/
private final int numberOfReplicas;
/** 一致性Hash环 */
/**
* 一致性Hash环
*/
private final SortedMap<Integer, T> circle = new TreeMap<>();
/**
* 构造使用Java默认的Hash算法
*
* @param numberOfReplicas 复制的节点个数增加每个节点的复制节点有利于负载均衡
* @param nodes 节点对象
*/
@ -45,6 +49,7 @@ public class ConsistentHash<T> implements Serializable{
/**
* 构造
*
* @param hashFunc hash算法对象
* @param numberOfReplicas 复制的节点个数增加每个节点的复制节点有利于负载均衡
* @param nodes 节点对象
@ -63,6 +68,7 @@ public class ConsistentHash<T> implements Serializable{
* 每增加一个节点就会在闭环上增加给定复制节点数<br>
* 例如复制节点数是2则每调用此方法一次增加两个虚拟节点这两个节点指向同一Node
* 由于hash算法会调用node的toString方法故按照toString去重
*
* @param node 节点对象
*/
public void add(T node) {
@ -73,6 +79,7 @@ public class ConsistentHash<T> implements Serializable{
/**
* 移除节点的同时移除相应的虚拟节点
*
* @param node 节点对象
*/
public void remove(T node) {
@ -83,6 +90,7 @@ public class ConsistentHash<T> implements Serializable{
/**
* 获得一个最近的顺时针节点
*
* @param key 为给定键取Hash取得顺时针方向上最近的一个虚拟节点对应的实际节点
* @return 节点对象
*/

View File

@ -1,9 +1,4 @@
package cn.hutool.core.util;
import cn.hutool.core.lang.hash.CityHash;
import cn.hutool.core.lang.hash.MetroHash;
import cn.hutool.core.lang.hash.MurmurHash;
import cn.hutool.core.lang.hash.Number128;
package cn.hutool.core.lang.hash;
/**
* Hash算法大全<br>

View File

@ -2,11 +2,7 @@ package cn.hutool.core.lang.id;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.ObjectId;
import cn.hutool.core.lang.Singleton;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.lang.id.UUID;
import cn.hutool.core.lang.id.NanoId;
import cn.hutool.core.net.NetUtil;
import cn.hutool.core.util.RuntimeUtil;

View File

@ -1,4 +1,4 @@
package cn.hutool.core.lang;
package cn.hutool.core.lang.id;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ClassLoaderUtil;

View File

@ -1,6 +1,7 @@
package cn.hutool.core.lang;
package cn.hutool.core.lang.id;
import cn.hutool.core.date.SystemClock;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.id.IdUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;

View File

@ -1,9 +1,11 @@
package cn.hutool.core.lang;
package cn.hutool.core.map;
import cn.hutool.core.bean.BeanPath;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.Pair;
import cn.hutool.core.lang.func.Func0;
import cn.hutool.core.lang.func.LambdaUtil;
import cn.hutool.core.getter.BasicTypeGetter;

View File

@ -2,7 +2,7 @@ package cn.hutool.core.text.bloomfilter;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.HashUtil;
import cn.hutool.core.lang.hash.HashUtil;
import java.io.BufferedReader;
import java.io.IOException;

View File

@ -1,6 +1,6 @@
package cn.hutool.core.text.bloomfilter.filter;
import cn.hutool.core.util.HashUtil;
import cn.hutool.core.lang.hash.HashUtil;
/**
* 默认Bloom过滤器使用Java自带的Hash算法

View File

@ -1,6 +1,6 @@
package cn.hutool.core.text.bloomfilter.filter;
import cn.hutool.core.util.HashUtil;
import cn.hutool.core.lang.hash.HashUtil;
public class ELFFilter extends FuncFilter {
private static final long serialVersionUID = 1L;

View File

@ -1,6 +1,6 @@
package cn.hutool.core.text.bloomfilter.filter;
import cn.hutool.core.util.HashUtil;
import cn.hutool.core.lang.hash.HashUtil;
public class FNVFilter extends FuncFilter {
private static final long serialVersionUID = 1L;

View File

@ -1,7 +1,7 @@
package cn.hutool.core.text.bloomfilter.filter;
import cn.hutool.core.util.HashUtil;
import cn.hutool.core.lang.hash.HashUtil;
public class HfFilter extends FuncFilter {
private static final long serialVersionUID = 1L;

View File

@ -1,6 +1,6 @@
package cn.hutool.core.text.bloomfilter.filter;
import cn.hutool.core.util.HashUtil;
import cn.hutool.core.lang.hash.HashUtil;
public class HfIpFilter extends FuncFilter {
private static final long serialVersionUID = 1L;

View File

@ -1,6 +1,6 @@
package cn.hutool.core.text.bloomfilter.filter;
import cn.hutool.core.util.HashUtil;
import cn.hutool.core.lang.hash.HashUtil;
public class JSFilter extends FuncFilter {
private static final long serialVersionUID = 1L;

View File

@ -1,6 +1,6 @@
package cn.hutool.core.text.bloomfilter.filter;
import cn.hutool.core.util.HashUtil;
import cn.hutool.core.lang.hash.HashUtil;
public class PJWFilter extends FuncFilter {
private static final long serialVersionUID = 1L;

View File

@ -1,6 +1,6 @@
package cn.hutool.core.text.bloomfilter.filter;
import cn.hutool.core.util.HashUtil;
import cn.hutool.core.lang.hash.HashUtil;
public class RSFilter extends FuncFilter {
private static final long serialVersionUID = 1L;

View File

@ -1,6 +1,6 @@
package cn.hutool.core.text.bloomfilter.filter;
import cn.hutool.core.util.HashUtil;
import cn.hutool.core.lang.hash.HashUtil;
public class SDBMFilter extends FuncFilter {
private static final long serialVersionUID = 1L;

View File

@ -1,6 +1,6 @@
package cn.hutool.core.text.bloomfilter.filter;
import cn.hutool.core.util.HashUtil;
import cn.hutool.core.lang.hash.HashUtil;
public class TianlFilter extends FuncFilter {
private static final long serialVersionUID = 1L;

View File

@ -1,7 +1,6 @@
package cn.hutool.core.text.dfa;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Filter;
import cn.hutool.core.util.StrUtil;
import java.util.ArrayList;
@ -10,6 +9,7 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.function.Predicate;
/**
* DFADeterministic Finite Automaton 确定有穷自动机
@ -36,7 +36,7 @@ public class WordTree extends HashMap<Character, WordTree> {
/**
* 字符过滤规则通过定义字符串过滤规则过滤不需要的字符当accept为false时此字符不参与匹配
*/
private Filter<Character> charFilter = StopChar::isNotStopChar;
private Predicate<Character> charFilter = StopChar::isNotStopChar;
//--------------------------------------------------------------------------------------- Constructor start
@ -55,7 +55,7 @@ public class WordTree extends HashMap<Character, WordTree> {
* @return this
* @since 5.2.0
*/
public WordTree setCharFilter(Filter<Character> charFilter) {
public WordTree setCharFilter(Predicate<Character> charFilter) {
this.charFilter = charFilter;
return this;
}
@ -98,7 +98,7 @@ public class WordTree extends HashMap<Character, WordTree> {
* @return this
*/
public WordTree addWord(String word) {
final Filter<Character> charFilter = this.charFilter;
final Predicate<Character> charFilter = this.charFilter;
WordTree parent = null;
WordTree current = this;
WordTree child;
@ -106,7 +106,7 @@ public class WordTree extends HashMap<Character, WordTree> {
final int length = word.length();
for (int i = 0; i < length; i++) {
currentChar = word.charAt(i);
if (charFilter.accept(currentChar)) {//只处理合法字符
if (charFilter.test(currentChar)) {//只处理合法字符
child = current.get(currentChar);
if (child == null) {
//无子类新建一个子节点后存放下一个字符
@ -245,7 +245,7 @@ public class WordTree extends HashMap<Character, WordTree> {
List<FoundWord> foundWords = new ArrayList<>();
WordTree current = this;
final int length = text.length();
final Filter<Character> charFilter = this.charFilter;
final Predicate<Character> charFilter = this.charFilter;
//存放查找到的字符缓存完整出现一个词时加到findedWords中否则清空
final StringBuilder wordBuffer = StrUtil.builder();
final StringBuilder keyBuffer = StrUtil.builder();
@ -256,7 +256,7 @@ public class WordTree extends HashMap<Character, WordTree> {
for (int j = i; j < length; j++) {
currentChar = text.charAt(j);
// Console.log("i: {}, j: {}, currentChar: {}", i, j, currentChar);
if (false == charFilter.accept(currentChar)) {
if (false == charFilter.test(currentChar)) {
if (wordBuffer.length() > 0) {
//做为关键词中间的停顿词被当作关键词的一部分被返回
wordBuffer.append(currentChar);

View File

@ -1,8 +1,9 @@
package cn.hutool.core.text.escape;
import cn.hutool.core.lang.Filter;
import cn.hutool.core.util.StrUtil;
import java.util.function.Predicate;
/**
* 转义和反转义工具类Escape / Unescape<br>
* escape采用ISO Latin字符集对指定的字符串进行编码<br>
@ -16,7 +17,7 @@ public class EscapeUtil {
* 不转义的符号编码
*/
private static final String NOT_ESCAPE_CHARS = "*@-_+./";
private static final Filter<Character> JS_ESCAPE_FILTER = c -> false == (
private static final Predicate<Character> JS_ESCAPE_FILTER = c -> false == (
Character.isDigit(c)
|| Character.isLowerCase(c)
|| Character.isUpperCase(c)
@ -109,7 +110,7 @@ public class EscapeUtil {
* @param filter 编码过滤器对于过滤器中accept为false的字符不做编码
* @return 编码后的字符串
*/
public static String escape(CharSequence content, Filter<Character> filter) {
public static String escape(CharSequence content, Predicate<Character> filter) {
if (StrUtil.isEmpty(content)) {
return StrUtil.str(content);
}
@ -118,7 +119,7 @@ public class EscapeUtil {
char c;
for (int i = 0; i < content.length(); i++) {
c = content.charAt(i);
if (false == filter.accept(c)) {
if (false == filter.test(c)) {
tmp.append(c);
} else if (c < 256) {
tmp.append("%");

View File

@ -26,6 +26,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Set;
import java.util.function.Predicate;
/**
* 类工具类 <br>
@ -233,7 +234,7 @@ public class ClassUtil {
* @param classFilter class过滤器过滤掉不需要的class
* @return 类集合
*/
public static Set<Class<?>> scanPackage(String packageName, Filter<Class<?>> classFilter) {
public static Set<Class<?>> scanPackage(String packageName, Predicate<Class<?>> classFilter) {
return ClassScanner.scanPackage(packageName, classFilter);
}

View File

@ -2,7 +2,7 @@ package cn.hutool.core.collection;
import cn.hutool.core.comparator.ComparableComparator;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.map.Dict;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.StrUtil;
import lombok.AllArgsConstructor;

View File

@ -2,6 +2,7 @@ package cn.hutool.core.lang;
import cn.hutool.core.builder.GenericBuilder;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.map.Dict;
import org.junit.Assert;
import org.junit.Test;

View File

@ -2,6 +2,7 @@ package cn.hutool.core.lang;
import java.util.HashSet;
import cn.hutool.core.lang.id.ObjectId;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;

View File

@ -1,5 +1,6 @@
package cn.hutool.core.lang;
import cn.hutool.core.cache.SimpleCache;
import cn.hutool.core.thread.ConcurrencyTester;
import cn.hutool.core.thread.ThreadUtil;
import org.junit.Assert;

View File

@ -2,6 +2,7 @@ package cn.hutool.core.lang;
import cn.hutool.core.collection.ConcurrentHashSet;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.lang.id.Snowflake;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.lang.id.IdUtil;
import cn.hutool.core.util.StrUtil;

View File

@ -1,6 +1,6 @@
package cn.hutool.core.text;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.map.Dict;
import cn.hutool.core.util.CharUtil;
import org.junit.Assert;
import org.junit.Test;

View File

@ -1,5 +1,6 @@
package cn.hutool.core.util;
import cn.hutool.core.lang.hash.HashUtil;
import org.junit.Assert;
import org.junit.Test;

View File

@ -5,7 +5,7 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.TimeInterval;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.lang.Console;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.lang.id.Snowflake;
import cn.hutool.core.lang.id.IdUtil;
import cn.hutool.core.thread.ThreadUtil;
import org.junit.Assert;

View File

@ -1,6 +1,6 @@
package cn.hutool.core.util;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.map.Dict;
import org.junit.Assert;
import org.junit.Test;

View File

@ -1,7 +1,7 @@
package cn.hutool.db;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.map.Dict;
import cn.hutool.core.lang.func.Func0;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.CharsetUtil;

View File

@ -1,6 +1,6 @@
package cn.hutool.extra.ssh;
import cn.hutool.core.lang.SimpleCache;
import cn.hutool.core.cache.SimpleCache;
import cn.hutool.core.util.StrUtil;
import com.jcraft.jsch.Session;

View File

@ -1,7 +1,7 @@
package cn.hutool.extra.template.engine.wit;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.map.Dict;
import cn.hutool.extra.template.Template;
import cn.hutool.extra.template.TemplateConfig;
import cn.hutool.extra.template.TemplateEngine;

View File

@ -2,7 +2,7 @@ package cn.hutool.extra.expression;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Console;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.map.Dict;
import cn.hutool.extra.expression.engine.aviator.AviatorEngine;
import lombok.Data;
import org.junit.Assert;

View File

@ -1,6 +1,6 @@
package cn.hutool.extra.expression;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.map.Dict;
import cn.hutool.extra.expression.engine.jexl.JexlEngine;
import cn.hutool.extra.expression.engine.jfireel.JfireELEngine;
import cn.hutool.extra.expression.engine.mvel.MvelEngine;

View File

@ -1,6 +1,6 @@
package cn.hutool.extra.template;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.map.Dict;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.template.engine.jetbrick.JetbrickEngine;
import org.junit.Assert;

View File

@ -1,6 +1,6 @@
package cn.hutool.extra.template;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.map.Dict;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.template.TemplateConfig.ResourceMode;
import cn.hutool.extra.template.engine.beetl.BeetlEngine;

View File

@ -14,7 +14,7 @@ import org.thymeleaf.context.Context;
import org.thymeleaf.templateresolver.StringTemplateResolver;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.map.Dict;
import cn.hutool.extra.template.engine.thymeleaf.ThymeleafEngine;
/**

View File

@ -1,6 +1,6 @@
package cn.hutool.extra.template;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.map.Dict;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.extra.template.engine.velocity.VelocityEngine;
import org.junit.Assert;

View File

@ -4,7 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.convert.ConvertException;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.map.Dict;
import cn.hutool.core.lang.TypeReference;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.json.test.bean.Exam;

View File

@ -3,7 +3,7 @@ package cn.hutool.log.dialect.console;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.Console;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.map.Dict;
import cn.hutool.core.util.StrUtil;
import cn.hutool.log.AbstractLog;
import cn.hutool.log.level.Level;

View File

@ -3,7 +3,7 @@ package cn.hutool.setting.yaml;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.resource.ResourceUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.map.Dict;
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;

View File

@ -1,7 +1,7 @@
package cn.hutool.setting.yaml;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.map.Dict;
import cn.hutool.core.util.CharsetUtil;
import org.junit.Assert;
import org.junit.Ignore;