Package w.util

Class ClassLoaderUtils

java.lang.Object
w.util.ClassLoaderUtils

public class ClassLoaderUtils extends Object
Author:
whilein
  • Constructor Details

    • ClassLoaderUtils

      public ClassLoaderUtils()
  • Method Details

    • getResource

      @Nullable public @Nullable InputStream getResource(@NotNull @NotNull ClassLoader cl, @NotNull @NotNull String path)
    • getResource

      @Nullable public @Nullable InputStream getResource(@NotNull @NotNull String path)
    • defineSharedClass

      @NotNull public @NotNull Class<?> defineSharedClass(@NotNull @NotNull ClassLoader parent, @NotNull @NotNull Set<@NotNull ClassLoader> shared, @NotNull @NotNull String name, byte @NotNull [] data)
      Создать класс, который может брать классы нескольких загрузчиков классов.
      Parameters:
      parent - Основной загрузчик классов
      shared - Сет загрузчиков классов
      name - Имя нового класса
      data - Байткод
      Returns:
      Новый класс
    • defineClass

      @NotNull public @NotNull Class<?> defineClass(@NotNull @NotNull ClassLoader parent, @NotNull @NotNull String name, byte @NotNull [] data)
    • toByteArray

      public byte @NotNull [] toByteArray(@NonNull @NonNull Class<?> type) throws IOException
      Throws:
      IOException
    • getClassBytes

      public byte @NotNull [] getClassBytes(@NonNull @NonNull ClassLoader classLoader, @NonNull @NonNull String className) throws IOException
      Throws:
      IOException
    • getResourceBytes

      public byte @NotNull [] getResourceBytes(@NonNull @NonNull ClassLoader classLoader, @NonNull @NonNull String resourceName) throws IOException
      Throws:
      IOException
    • findClass

      @NotNull public @NotNull Optional<@NotNull Class<?>> findClass(@NonNull @NonNull ClassLoader classLoader, @NonNull @NonNull String className, boolean loadIfNeeded)
    • findClass

      @NotNull public @NotNull Optional<@NotNull Class<?>> findClass(@NonNull @NonNull String className, boolean loadIfNeeded)
    • loadAny

      @NotNull public @NotNull Class<?> loadAny(@NotNull @NotNull String @NotNull ... classNames)
    • findClass

      @NotNull public @NotNull Optional<@NotNull Class<?>> findClass(@NonNull @NonNull String className)
    • getClass

      @Nullable public @Nullable Class<?> getClass(@NonNull @NonNull ClassLoader classLoader, @NonNull @NonNull String className, boolean loadIfNeeded)
    • getClass

      @Nullable public @Nullable Class<?> getClass(@NonNull @NonNull String className, boolean loadIfNeeded)
    • getField

      @Nullable public @Nullable Field getField(@NotNull @NotNull ClassLoader cl, @NotNull @NotNull String className, @NotNull @NotNull String fieldName)
    • getMethod

      @Nullable public @Nullable Method getMethod(@NotNull @NotNull ClassLoader cl, @NotNull @NotNull String className, @NotNull @NotNull String methodName, @NotNull @NotNull String @NotNull [] parameters, @NotNull @NotNull String returnType)
    • getClass

      @Nullable public @Nullable Class<?> getClass(@NonNull @NonNull String className)
    • isClassAvailable

      public boolean isClassAvailable(@NonNull @NonNull ClassLoader classLoader, @NonNull @NonNull String className, boolean loadIfNeeded)
    • isClassAvailable

      public boolean isClassAvailable(@NonNull @NonNull String className, boolean loadIfNeeded)
    • isClassAvailable

      public boolean isClassAvailable(@NonNull @NonNull String className)