Package com.ultikits.ultitools.utils
Class ClassLoaderUtils
java.lang.Object
com.ultikits.ultitools.utils.ClassLoaderUtils
Utility class for ensuring proper class loader usage throughout the plugin.
All class loaders created in this plugin should use the JavaPlugin class loader as parent.
类加载器实用工具类,确保插件中正确使用类加载器。 此插件中创建的所有类加载器都应使用JavaPlugin类加载器作为父类加载器。
类加载器实用工具类,确保插件中正确使用类加载器。 此插件中创建的所有类加载器都应使用JavaPlugin类加载器作为父类加载器。
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic ClassLoaderGet the JavaPlugin class loader.static Class<?> Load a class using the plugin class loader with security validation.static Class<?> Load a class using the plugin class loader with initialization control and security validation.static Class<?> loadPluginClass(String className) Safely load a class that extends UltiToolsPlugin.static booleanvalidateClassLoaderHierarchy(ClassLoader classLoader) Validate that a class loader has the correct parent hierarchy.private static voidvalidateClassName(String className) Validate class name for security.
-
Field Details
-
VALID_CLASS_NAME_PATTERN
-
-
Constructor Details
-
ClassLoaderUtils
public ClassLoaderUtils()
-
-
Method Details
-
validateClassName
Validate class name for security.
验证类名的安全性。- Parameters:
className- class name to validate
要验证的类名- Throws:
SecurityException- if class name is invalid or dangerous
如果类名无效或危险
-
getPluginClassLoader
Get the JavaPlugin class loader. This should be used as the parent class loader for any custom class loaders.
获取JavaPlugin类加载器。 这应该用作任何自定义类加载器的父类加载器。- Returns:
- JavaPlugin class loader
JavaPlugin类加载器
-
loadClass
Load a class using the plugin class loader with security validation.
使用插件类加载器安全地加载类。- Parameters:
className- class name
类名- Returns:
- loaded class
加载的类 - Throws:
ClassNotFoundException- if class not found
如果找不到类SecurityException- if class is dangerous
如果类是危险的
-
loadClass
public static Class<?> loadClass(String className, boolean initialize) throws ClassNotFoundException, SecurityException Load a class using the plugin class loader with initialization control and security validation.
使用插件类加载器安全地加载类,并控制初始化。- Parameters:
className- class name
类名initialize- whether to initialize the class
是否初始化类- Returns:
- loaded class
加载的类 - Throws:
ClassNotFoundException- if class not found
如果找不到类SecurityException- if class is dangerous
如果类是危险的
-
loadPluginClass
public static Class<?> loadPluginClass(String className) throws ClassNotFoundException, SecurityException Safely load a class that extends UltiToolsPlugin. This method provides additional validation for plugin classes.
安全地加载继承自UltiToolsPlugin的类。 此方法为插件类提供额外的验证。- Parameters:
className- class name
类名- Returns:
- loaded plugin class
加载的插件类 - Throws:
ClassNotFoundException- if class not found
如果找不到类SecurityException- if class is dangerous or invalid
如果类是危险的或无效的
-
validateClassLoaderHierarchy
Validate that a class loader has the correct parent hierarchy.
验证类加载器具有正确的父类层次结构。- Parameters:
classLoader- class loader to validate
要验证的类加载器- Returns:
- true if valid, false otherwise
如果有效则为true,否则为false
-