From 878e92931aa86aeab66cd0b248d5907e9bde4301 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Thu, 9 Mar 2023 12:04:18 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90fix=20sonar=E3=80=91MyClassLoader?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jero/common/util/MyClassLoader.java | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/util/MyClassLoader.java b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/util/MyClassLoader.java index 9c9b37dc..8c26d86a 100644 --- a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/util/MyClassLoader.java +++ b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/util/MyClassLoader.java @@ -2,12 +2,14 @@ package com.jero.common.util; import com.jero.common.exception.JeroBootException; +import java.io.File; + /** * @Author 张代浩 */ public class MyClassLoader extends ClassLoader { public static Class getClassByScn(String className) { - Class myclass = null; + Class myclass; try { myclass = Class.forName(className); } catch (ClassNotFoundException e) { @@ -24,8 +26,7 @@ public class MyClassLoader extends ClassLoader { throw new java.lang.IllegalArgumentException("参数不能为空!"); } // 获得类的全名,包括包名 - String clsName = object.getClass().getName(); - return clsName; + return object.getClass().getName(); } public static String getAppPath(Class cls) { @@ -38,7 +39,7 @@ public class MyClassLoader extends ClassLoader { String clsName = cls.getName() + ".class"; // 获得传入参数所在的包 Package pack = cls.getPackage(); - String path = ""; + StringBuilder path = new StringBuilder(); // 如果不是匿名包,将包名转化为路径 if (pack != null) { String packName = pack.getName(); @@ -49,17 +50,17 @@ public class MyClassLoader extends ClassLoader { // 在类的名称中,去掉包名的部分,获得类的文件名 clsName = clsName.substring(packName.length() + 1); // 判定包名是否是简单包名,如果是,则直接将包名转换为路径, - if (packName.indexOf(".") < 0) { - path = packName + "/"; + if (!packName.contains(".")) { + path = new StringBuilder(packName + File.separator); } else {// 否则按照包名的组成部分,将包名转换为路径 - int start = 0, end = 0; - end = packName.indexOf("."); + int start = 0; + int end = packName.indexOf("."); while (end != -1) { - path = path + packName.substring(start, end) + "/"; + path.append(packName.substring(start, end)).append(File.separator); start = end + 1; end = packName.indexOf(".", start); } - path = path + packName.substring(start) + "/"; + path.append(packName.substring(start)).append(File.separator); } } // 调用ClassLoader的getResource方法,传入包含路径信息的类文件名