public class UClassLoaderUtil extends Object
ClassLoader工具类| Constructor and Description |
|---|
UClassLoaderUtil() |
| Modifier and Type | Method and Description |
|---|---|
static ClassLoader |
getClassLoader()
|
static ClassLoader |
getContextClassLoader()
获取当前线程的
ClassLoader |
static Class<?> |
loadClass(String name,
boolean isInitialized)
加载类,通过传入类的字符串,返回其对应的类名,使用默认ClassLoader
扩展 Class.forName(String, boolean, ClassLoader)方法,支持以下几类类名的加载: |
static Class<?> |
loadClass(String name,
ClassLoader classLoader,
boolean isInitialized)
加载类,通过传入类的字符串,返回其对应的类名
此方法支持缓存,第一次被加载的类之后会读取缓存中的类 加载失败的原因可能是此类不存在或其关联引用类不存在 扩展 Class.forName(String, boolean, ClassLoader)方法,支持以下几类类名的加载: |
static Class<?> |
loadPrimitiveClass(String name)
加载原始类型的类。包括原始类型、原始类型数组和void
|
public static ClassLoader getContextClassLoader()
ClassLoaderThread.getContextClassLoader()public static ClassLoader getClassLoader()
ClassLoader1、获取当前线程的ContextClassLoader 2、获取UClassLoaderUtil类对应的ClassLoader 3、获取系统ClassLoader(ClassLoader.getSystemClassLoader())
public static Class<?> loadClass(String name, boolean isInitialized) throws UtilException
Class.forName(String, boolean, ClassLoader)方法,支持以下几类类名的加载:
1、原始类型,例如:int 2、数组类型,例如:int[]、Long[]、String[] 3、内部类,例如:java.lang.Thread.State会被转为java.lang.Thread$State加载
name - 类名isInitialized - 是否初始化类(调用static模块内容和初始化static属性)UtilException - 包装ClassNotFoundException,没有类名对应的类时抛出此异常public static Class<?> loadClass(String name, ClassLoader classLoader, boolean isInitialized) throws UtilException
Class.forName(String, boolean, ClassLoader)方法,支持以下几类类名的加载:
1、原始类型,例如:int 2、数组类型,例如:int[]、Long[]、String[] 3、内部类,例如:java.lang.Thread.State会被转为java.lang.Thread$State加载
name - 类名classLoader - ClassLoader,null 则使用系统默认ClassLoaderisInitialized - 是否初始化类(调用static模块内容和初始化static属性)UtilException - 包装ClassNotFoundException,没有类名对应的类时抛出此异常Copyright © 2020. All rights reserved.