Class ClassLoaderUtils

java.lang.Object
com.ultikits.ultitools.utils.ClassLoaderUtils

public class ClassLoaderUtils extends Object
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类加载器作为父类加载器。
  • Field Details

    • VALID_CLASS_NAME_PATTERN

      private static final Pattern VALID_CLASS_NAME_PATTERN
  • Constructor Details

    • ClassLoaderUtils

      public ClassLoaderUtils()
  • Method Details

    • validateClassName

      private static void validateClassName(String className) throws SecurityException
      Validate class name for security.
      验证类名的安全性。
      Parameters:
      className - class name to validate
      要验证的类名
      Throws:
      SecurityException - if class name is invalid or dangerous
      如果类名无效或危险
    • getPluginClassLoader

      public static ClassLoader 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

      public static Class<?> loadClass(String className) throws ClassNotFoundException, SecurityException
      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

      public static boolean validateClassLoaderHierarchy(ClassLoader classLoader)
      Validate that a class loader has the correct parent hierarchy.
      验证类加载器具有正确的父类层次结构。
      Parameters:
      classLoader - class loader to validate
      要验证的类加载器
      Returns:
      true if valid, false otherwise
      如果有效则为true,否则为false