From 89d481da523eaf8553fde9cf67b61713adc3322e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B8=BF=E8=BE=BE?= Date: Thu, 28 Apr 2022 15:58:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=BC=BA=E5=8D=95=E4=BE=8B=E6=B1=A0?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E7=B1=BB=E6=98=AF=E5=90=A6=E5=AD=98=E5=9C=A8=E5=92=8C=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=89=80=E6=9C=89=E5=AD=98=E5=9C=A8=E7=9A=84=E7=B1=BB?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/hutool/core/lang/Singleton.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) 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对象 *