mirror of
https://gitee.com/dromara/hutool.git
synced 2025-04-05 17:37:59 +08:00
增强单例池功能,新增判断类是否存在和获取所有存在的类方法
This commit is contained in:
parent
2917cb7934
commit
89d481da52
@ -6,7 +6,11 @@ import cn.hutool.core.util.ClassUtil;
|
||||
import cn.hutool.core.util.ReflectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 单例类<br>
|
||||
@ -90,6 +94,30 @@ public final class Singleton {
|
||||
POOL.put(key, obj);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断某个类的对象是否存在
|
||||
*
|
||||
* @param clazz 类
|
||||
* @param params 构造参数
|
||||
* @return 是否存在
|
||||
*/
|
||||
public static boolean exists(Class<?> clazz, Object... params){
|
||||
if (null != clazz){
|
||||
final String key = buildKey(clazz.getName(), params);
|
||||
return POOL.containsKey(key);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取单例池中存在的所有类
|
||||
*
|
||||
* @return 非重复的类集合
|
||||
*/
|
||||
public static Set<Class<?>> getExistClass(){
|
||||
return POOL.values().stream().map(Object::getClass).collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
/**
|
||||
* 移除指定Singleton对象
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user