Package jtdog.dynamic
Class MemoryClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- java.security.SecureClassLoader
-
- java.net.URLClassLoader
-
- jtdog.dynamic.MemoryClassLoader
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
- Direct Known Subclasses:
JUnitMemoryClassLoader
public class MemoryClassLoader extends java.net.URLClassLoaderA class loader that loads classes from in-memory data.
-
-
Constructor Summary
Constructors Constructor Description MemoryClassLoader(java.net.URL[] urls)MemoryClassLoader(java.net.URL[] urls, java.lang.ClassLoader parent)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddDefinition(java.lang.String name, byte[] bytes)Add a in-memory representation of a class.protected java.lang.Class<?>findClass(java.lang.String name)メモリ上からクラスを探す.
まずURLClassLoaderによるファイルシステム上のクラスのロードを試み,それがなければメモリ上のクラスロードを試す.-
Methods inherited from class java.net.URLClassLoader
addURL, close, definePackage, findResource, findResources, getPermissions, getResourceAsStream, getURLs, newInstance, newInstance
-
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
Method Detail
-
addDefinition
public void addDefinition(java.lang.String name, byte[] bytes)Add a in-memory representation of a class.- Parameters:
name- name of the classbytes- class definition
-
findClass
protected java.lang.Class<?> findClass(java.lang.String name) throws java.lang.ClassNotFoundExceptionメモリ上からクラスを探す.
まずURLClassLoaderによるファイルシステム上のクラスのロードを試み,それがなければメモリ上のクラスロードを試す.- Overrides:
findClassin classjava.net.URLClassLoader- Throws:
java.lang.ClassNotFoundException
-
-