Class ClassFileLocator.ForClassLoader.WeaklyReferenced

java.lang.Object
java.lang.ref.Reference<ClassLoader>
java.lang.ref.WeakReference<ClassLoader>
net.bytebuddy.dynamic.ClassFileLocator.ForClassLoader.WeaklyReferenced
All Implemented Interfaces:
Closeable, AutoCloseable, ClassFileLocator
Enclosing class:
ClassFileLocator.ForClassLoader

public static class ClassFileLocator.ForClassLoader.WeaklyReferenced extends WeakReference<ClassLoader> implements ClassFileLocator

A class file locator that queries a class loader for binary representations of class files. The class loader is only weakly referenced.

Important: Even when calling Closeable.close() on this class file locator, no underlying class loader is closed if it implements the Closeable interface as this is typically not intended.

  • Field Details

    • hashCode

      private final int hashCode
      The represented class loader's hash code.
  • Constructor Details

    • WeaklyReferenced

      protected WeaklyReferenced(ClassLoader classLoader)
      Creates a class file locator for a class loader that is weakly referenced.
      Parameters:
      classLoader - The class loader to represent.
  • Method Details

    • of

      public static ClassFileLocator of(@MaybeNull ClassLoader classLoader)
      Creates a class file locator for a given class loader. If the class loader is not the bootstrap class loader or the system class loader which cannot be collected, the class loader is only weakly referenced.
      Parameters:
      classLoader - The class loader to be used. If this class loader represents the bootstrap class loader which is represented by the null value, this system class loader is used instead.
      Returns:
      A corresponding source locator.
    • locate

      public ClassFileLocator.Resolution locate(String name) throws IOException
      Locates the class file for a given type and returns the binary data of the class file.
      Specified by:
      locate in interface ClassFileLocator
      Parameters:
      name - The name of the type to locate a class file representation for.
      Returns:
      Any binary representation of the type which might be illegal.
      Throws:
      IOException - If reading a class file causes an error.
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(@MaybeNull Object other)
      Overrides:
      equals in class Object