From e83e9a5e9f54660f0495f4cdc474af66dc319385 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=96=E5=8C=96=E5=A4=A9?= <740311548@qq.com> Date: Tue, 16 May 2023 21:18:42 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E8=87=AA=E5=AE=9A=E4=B9=89Cl?= =?UTF-8?q?assLoader=E6=97=B6,=E4=B8=8D=E8=83=BD=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E7=B1=BB=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: chen.weiqing <740311548@qq.com> --- .../java/org/ssssssss/script/MagicResourceLoader.java | 10 ++++++++++ .../java/org/ssssssss/script/MagicScriptEngine.java | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/ssssssss/script/MagicResourceLoader.java b/src/main/java/org/ssssssss/script/MagicResourceLoader.java index 239ad09..0257c18 100644 --- a/src/main/java/org/ssssssss/script/MagicResourceLoader.java +++ b/src/main/java/org/ssssssss/script/MagicResourceLoader.java @@ -122,6 +122,16 @@ public class MagicResourceLoader { return classLoader.apply(className); } + /** + * 通过类全名获取类 + * + * @param className 类全限定名 + */ + public static Class forName(String className) throws ClassNotFoundException{ + Object obj = classLoader.apply(className); + return obj instanceof Class ? (Class)obj : obj.getClass(); + } + /** * 获取可用的模块列表 */ diff --git a/src/main/java/org/ssssssss/script/MagicScriptEngine.java b/src/main/java/org/ssssssss/script/MagicScriptEngine.java index 3cfd574..83225b5 100644 --- a/src/main/java/org/ssssssss/script/MagicScriptEngine.java +++ b/src/main/java/org/ssssssss/script/MagicScriptEngine.java @@ -118,7 +118,7 @@ public class MagicScriptEngine extends AbstractScriptEngine implements ScriptEng public static Set getScriptClass(String className) { try { - return new LinkedHashSet<>(getScriptClass(Class.forName(className))); + return new LinkedHashSet<>(getScriptClass(MagicResourceLoader.forName(className))); } catch (ClassNotFoundException e) { return Collections.emptySet(); } -- Gitee