Class ClassLoaderStrategy.DefaultClassLoaderStrategy
java.lang.Object
jodd.util.ClassLoaderStrategy.DefaultClassLoaderStrategy
- All Implemented Interfaces:
ClassLoaderStrategy
- Enclosing interface:
ClassLoaderStrategy
public static class ClassLoaderStrategy.DefaultClassLoaderStrategy
extends Object
implements ClassLoaderStrategy
Default Jodd class loader strategy.
Loads a class with a given name dynamically, more reliable then
Class.forName.
Class will be loaded using class loaders in the following order:
- provided class loader (if any)
Thread.currentThread().getContextClassLoader()}- caller classloader
-
Nested Class Summary
Nested classes/interfaces inherited from interface ClassLoaderStrategy
ClassLoaderStrategy.DefaultClassLoaderStrategy -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static intgetPrimitiveClassNameIndex(String className) Detects if provided class name is a primitive type.booleanReturns arrays class loading strategy.protected ClassloadArrayClassByComponentType(String className, ClassLoader classLoader) Loads array class using component type.loadClass(String className, ClassLoader classLoader) Loads class by name.protected ClassloadClass(String className, String arrayClassName, ClassLoader classLoader) Loads a class using provided class loader.static StringprepareArrayClassnameForLoading(String className) Prepares classname for loading, respecting the arrays.voidsetLoadArrayClassByComponentTypes(boolean loadArrayClassByComponentTypes) Defines arrays class loading strategy.
-
Field Details
-
PRIMITIVE_TYPE_NAMES
List of primitive type names. -
PRIMITIVE_TYPES
List of primitive types that matches names list. -
PRIMITIVE_BYTECODE_NAME
public static final char[] PRIMITIVE_BYTECODE_NAMEList of primitive bytecode characters that matches names list. -
loadArrayClassByComponentTypes
protected boolean loadArrayClassByComponentTypes
-
-
Constructor Details
-
DefaultClassLoaderStrategy
public DefaultClassLoaderStrategy()
-
-
Method Details
-
isLoadArrayClassByComponentTypes
public boolean isLoadArrayClassByComponentTypes()Returns arrays class loading strategy. -
setLoadArrayClassByComponentTypes
public void setLoadArrayClassByComponentTypes(boolean loadArrayClassByComponentTypes) Defines arrays class loading strategy. Iffalse(default), classes will be loaded byClass.forName. Iftrue, classes will be loaded by reflection and component types. -
prepareArrayClassnameForLoading
-
getPrimitiveClassNameIndex
Detects if provided class name is a primitive type. Returns >= 0 number if so. -
loadClass
Loads class by name.- Specified by:
loadClassin interfaceClassLoaderStrategy- Throws:
ClassNotFoundException
-
loadClass
Loads a class using provided class loader. If class is an array, it will be first loaded using theClass.forName! We must use this since for JDK >= 6 arrays will be not loaded using classloader, but only withforNamemethod. However, array loading strategy can bechanged. -
loadArrayClassByComponentType
protected Class loadArrayClassByComponentType(String className, ClassLoader classLoader) throws ClassNotFoundException Loads array class using component type.- Throws:
ClassNotFoundException
-