Package org.fest.reflect.type
Class Type
- java.lang.Object
-
- org.fest.reflect.type.Type
-
public final class Type extends java.lang.Object
Understands loading a class dynamically.The following is an example of proper usage of this class:
// Loads the class 'org.republic.Jedi' Class<?> jediType =
type
("org.republic.Jedi").load
(); // Loads the class 'org.republic.Jedi' as 'org.republic.Person' (Jedi extends Person) Class<Person> jediType =type
("org.republic.Jedi").loadAs
(Person.class); // Loads the class 'org.republic.Jedi' using a custom class loader Class<?> jediType =type
("org.republic.Jedi").withClassLoader
(myClassLoader).load
();- Since:
- 1.1
- Author:
- Alex Ruiz
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Class<?>
load()
Loads the class with the name specified in this type, using this class'ClassLoader
.<T> java.lang.Class<? extends T>
loadAs(java.lang.Class<T> type)
Loads the class with the name specified in this type, as the given type, using this class'ClassLoader
.static Type
newType(java.lang.String name)
Creates a new
: the starting point of the fluent interface for loading classes dynamically.Type
TypeLoader
withClassLoader(java.lang.ClassLoader classLoader)
Specifies the
to use to load the class.ClassLoader
-
-
-
Method Detail
-
newType
public static Type newType(java.lang.String name)
Creates a new
: the starting point of the fluent interface for loading classes dynamically.Type
- Parameters:
name
- the name of the class to load.- Returns:
- the created
Type
. - Throws:
java.lang.NullPointerException
- if the given name isnull
.java.lang.IllegalArgumentException
- if the given name is empty.
-
load
public java.lang.Class<?> load()
Loads the class with the name specified in this type, using this class'ClassLoader
.- Returns:
- the loaded class.
- Throws:
ReflectionError
- wrapping any error that occurred during class loading.
-
loadAs
public <T> java.lang.Class<? extends T> loadAs(java.lang.Class<T> type)
Loads the class with the name specified in this type, as the given type, using this class'ClassLoader
.The following example shows how to use this method. Let's assume that we have the class
Jedi
that extends the classPerson
:Class<Person> type =
type
("org.republic.Jedi").loadAs
(Person.class);- Type Parameters:
T
- the generic type of the type.- Parameters:
type
- the given type.- Returns:
- the loaded class.
- Throws:
java.lang.NullPointerException
- if the given type isnull
.ReflectionError
- wrapping any error that occurred during class loading.
-
withClassLoader
public TypeLoader withClassLoader(java.lang.ClassLoader classLoader)
Specifies the
to use to load the class.ClassLoader
Example:
Class<?> type =
type
("org.republic.Jedi").withClassLoader
(myClassLoader).load
();- Parameters:
classLoader
- the givenClassLoader
.- Returns:
- an object responsible of loading a class with the given
ClassLoader
. - Throws:
java.lang.NullPointerException
- if the givenClassLoader
isnull
.
-
-