diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Singleton.java b/hutool-core/src/main/java/cn/hutool/core/lang/Singleton.java
index a4f210100..ba49e1e99 100755
--- a/hutool-core/src/main/java/cn/hutool/core/lang/Singleton.java
+++ b/hutool-core/src/main/java/cn/hutool/core/lang/Singleton.java
@@ -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;
/**
* 单例类
@@ -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> getExistClass(){
+ return POOL.values().stream().map(Object::getClass).collect(Collectors.toSet());
+ }
+
/**
* 移除指定Singleton对象
*