Package net.minidev.asm
Class DynamicClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- net.minidev.asm.DynamicClassLoader
-
class DynamicClassLoader extends java.lang.ClassLoader
Simple extension from ClassLoader overiding the loadClass(String name, boolean resolve) method and allowing to register new classes
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
BEAN_AC
private static java.lang.Class<?>[]
DEF_CLASS_SIG
Predefined define defineClass method signature (name, bytes, offset, length)
-
Constructor Summary
Constructors Constructor Description DynamicClassLoader(java.lang.ClassLoader parent)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) java.lang.Class<?>
defineClass(java.lang.String name, byte[] bytes)
Call defineClass into the parent classLoader using the method.setAccessible(boolean) hackstatic <T> T
directInstance(java.lang.Class<? extends T> parent, java.lang.String clsName, byte[] clsData)
static <T> java.lang.Class<T>
directLoad(java.lang.Class<? extends T> parent, java.lang.String clsName, byte[] clsData)
protected java.lang.Class<?>
loadClass(java.lang.String name, boolean resolve)
-
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
Method Detail
-
directLoad
public static <T> java.lang.Class<T> directLoad(java.lang.Class<? extends T> parent, java.lang.String clsName, byte[] clsData)
- Parameters:
parent
- used to choose the ClassLoaderclsName
- CclsData
-- Returns:
-
directInstance
public static <T> T directInstance(java.lang.Class<? extends T> parent, java.lang.String clsName, byte[] clsData) throws java.lang.InstantiationException, java.lang.IllegalAccessException
- Throws:
java.lang.InstantiationException
java.lang.IllegalAccessException
-
loadClass
protected java.lang.Class<?> loadClass(java.lang.String name, boolean resolve) throws java.lang.ClassNotFoundException
- Overrides:
loadClass
in classjava.lang.ClassLoader
- Throws:
java.lang.ClassNotFoundException
-
defineClass
java.lang.Class<?> defineClass(java.lang.String name, byte[] bytes) throws java.lang.ClassFormatError
Call defineClass into the parent classLoader using the method.setAccessible(boolean) hack- Throws:
java.lang.ClassFormatError
- See Also:
ClassLoader.defineClass(String, byte[], int, int)
-
-