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

Merge pull request !609 from Topcoder2023/v5-dev
This commit is contained in:
Looly 2022-04-28 08:58:15 +00:00 committed by Gitee
commit f46df1fccf
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F

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