Package net.bytebuddy.dynamic
Class ClassFileLocator.ForClassLoader.WeaklyReferenced
- java.lang.Object
-
- java.lang.ref.Reference<T>
-
- 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 theCloseableinterface as this is typically not intended.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface net.bytebuddy.dynamic.ClassFileLocator
ClassFileLocator.AgentBased, ClassFileLocator.Compound, ClassFileLocator.ForClassLoader, ClassFileLocator.ForFolder, ClassFileLocator.ForJarFile, ClassFileLocator.ForModule, ClassFileLocator.ForModuleFile, ClassFileLocator.ForUrl, ClassFileLocator.NoOp, ClassFileLocator.PackageDiscriminating, ClassFileLocator.Resolution, ClassFileLocator.Simple
-
-
Field Summary
-
Fields inherited from interface net.bytebuddy.dynamic.ClassFileLocator
CLASS_FILE_EXTENSION
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedWeaklyReferenced(ClassLoader classLoader)Creates a class file locator for a class loader that is weakly referenced.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()booleanequals(Object other)inthashCode()ClassFileLocator.Resolutionlocate(String name)Locates the class file for a given type and returns the binary data of the class file.static ClassFileLocatorof(ClassLoader classLoader)Creates a class file locator for a given class loader.-
Methods inherited from class java.lang.ref.Reference
clear, enqueue, get, isEnqueued
-
-
-
-
Constructor Detail
-
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 Detail
-
of
public static ClassFileLocator of(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 thenullvalue, 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:
locatein interfaceClassFileLocator- 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:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable
-
-