增强单例池功能,新增判断类是否存在和获取所有存在的类方法

This commit is contained in:
李鸿达 2022-04-28 15:58:02 +08:00
parent 2917cb7934
commit 89d481da52

View File

@ -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对象
*