From 6d156e3d46781f7a63750e04eb681649d899d578 Mon Sep 17 00:00:00 2001 From: wanggeng <450292408@qq.com> Date: Fri, 1 Apr 2022 21:54:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=97=E8=A1=A8=E9=80=9A?= =?UTF-8?q?=E8=BF=87=E7=B1=BB=E5=90=8D=E5=BE=97=E5=88=B0=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=AE=9E=E4=BE=8B=E5=88=97=E8=A1=A8=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/ink/wgink/util/ReflectUtil.java | 33 +++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/basic-util/src/main/java/ink/wgink/util/ReflectUtil.java b/basic-util/src/main/java/ink/wgink/util/ReflectUtil.java index aaff7374..4e92cad5 100644 --- a/basic-util/src/main/java/ink/wgink/util/ReflectUtil.java +++ b/basic-util/src/main/java/ink/wgink/util/ReflectUtil.java @@ -1,13 +1,13 @@ package ink.wgink.util; -import org.apache.commons.collections.KeyValue; -import org.apache.commons.collections.keyvalue.DefaultKeyValue; import org.apache.commons.lang3.StringUtils; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -22,6 +22,35 @@ import java.util.Map; **/ public class ReflectUtil { + /** + * 获取接口实例,实例必须有无参构造方法 + * + * @param instanceClassNames 实现类名 + * @param interfaceClass 接口 + * @param + * @return + * @throws ReflectException + */ + public static List listInterfaceInstance(List instanceClassNames, Class interfaceClass) throws ReflectException { + if (instanceClassNames == null || instanceClassNames.isEmpty()) { + throw new ReflectException("instanceClassNames 不能为空"); + } + if (interfaceClass == null) { + throw new ReflectException("interfaceClass 不能为空"); + } + List instances = new ArrayList<>(); + try { + for (String instanceClassName : instanceClassNames) { + Class clazz = Class.forName(instanceClassName); + T instance = (T) clazz.getConstructor().newInstance(); + instances.add(instance); + } + } catch (ClassNotFoundException | InvocationTargetException | InstantiationException | IllegalAccessException | NoSuchMethodException e) { + e.printStackTrace(); + } + return instances; + } + /** * 获取单例对象 *