public class ReflectionHelpers
extends java.lang.Object
Collection of helper methods for calling methods and accessing fields reflectively.
| Modifier and Type | Class and Description |
|---|---|
static class |
ReflectionHelpers.ClassParameter<V>
Typed parameter used with reflective method calls.
|
static class |
ReflectionHelpers.StringParameter<V>
String parameter used with reflective method calls.
|
| Modifier and Type | Field and Description |
|---|---|
static java.util.Map<java.lang.String,java.lang.Object> |
PRIMITIVE_RETURN_VALUES |
| Constructor and Description |
|---|
ReflectionHelpers() |
| Modifier and Type | Method and Description |
|---|---|
static <R> R |
callConstructor(java.lang.Class<? extends R> clazz,
ReflectionHelpers.ClassParameter<?>... classParameters)
Reflectively call the constructor of an object.
|
static <R> R |
callInstanceMethod(java.lang.Class<?> cl,
java.lang.Object instance,
java.lang.String methodName,
ReflectionHelpers.ClassParameter<?>... classParameters)
Reflectively call an instance method on an object on a specific class.
|
static <R> R |
callInstanceMethod(java.lang.Object instance,
java.lang.String methodName,
ReflectionHelpers.ClassParameter<?>... classParameters)
Reflectively call an instance method on an object.
|
static <R> R |
callStaticMethod(java.lang.Class<?> clazz,
java.lang.String methodName,
ReflectionHelpers.ClassParameter<?>... classParameters)
Reflectively call a static method on a class.
|
static <T> T |
createDelegatingProxy(java.lang.Class<T> clazz,
java.lang.Object delegate) |
static <T> T |
createNullProxy(java.lang.Class<T> clazz) |
static <A extends java.lang.annotation.Annotation> |
defaultsFor(java.lang.Class<A> annotation) |
static java.lang.Object |
defaultValueForType(java.lang.String returnType) |
static <R> R |
getField(java.lang.Object object,
java.lang.String fieldName)
Reflectively get the value of a field.
|
static <R> R |
getStaticField(java.lang.Class<?> clazz,
java.lang.String fieldName)
Reflectively get the value of a static field.
|
static <R> R |
getStaticField(java.lang.reflect.Field field)
Reflectively get the value of a static field.
|
static java.lang.Class<?> |
loadClass(java.lang.ClassLoader classLoader,
java.lang.String fullyQualifiedClassName)
Load a class.
|
static <T> T |
newInstance(java.lang.Class<T> cl)
Create a new instance of a class
|
static void |
setField(java.lang.Class<?> type,
java.lang.Object object,
java.lang.String fieldName,
java.lang.Object fieldNewValue)
Reflectively set the value of a field.
|
static void |
setField(java.lang.Object object,
java.lang.String fieldName,
java.lang.Object fieldNewValue)
Reflectively set the value of a field.
|
static void |
setStaticField(java.lang.Class<?> clazz,
java.lang.String fieldName,
java.lang.Object fieldNewValue)
Reflectively set the value of a static field.
|
static void |
setStaticField(java.lang.reflect.Field field,
java.lang.Object fieldNewValue)
Reflectively set the value of a static field.
|
public static final java.util.Map<java.lang.String,java.lang.Object> PRIMITIVE_RETURN_VALUES
public static <T> T createNullProxy(java.lang.Class<T> clazz)
public static <T> T createDelegatingProxy(java.lang.Class<T> clazz,
java.lang.Object delegate)
public static <A extends java.lang.annotation.Annotation> A defaultsFor(java.lang.Class<A> annotation)
public static <R> R getField(java.lang.Object object,
java.lang.String fieldName)
Reflectively get the value of a field.
R - The return type.object - Target object.fieldName - The field name.public static void setField(java.lang.Object object,
java.lang.String fieldName,
java.lang.Object fieldNewValue)
Reflectively set the value of a field.
object - Target object.fieldName - The field name.fieldNewValue - New value.public static void setField(java.lang.Class<?> type,
java.lang.Object object,
java.lang.String fieldName,
java.lang.Object fieldNewValue)
Reflectively set the value of a field.
type - Target type.object - Target object.fieldName - The field name.fieldNewValue - New value.public static <R> R getStaticField(java.lang.reflect.Field field)
Reflectively get the value of a static field.
R - The return type.field - Field object.public static <R> R getStaticField(java.lang.Class<?> clazz,
java.lang.String fieldName)
Reflectively get the value of a static field.
R - The return type.clazz - Target class.fieldName - The field name.public static void setStaticField(java.lang.reflect.Field field,
java.lang.Object fieldNewValue)
Reflectively set the value of a static field.
field - Field object.fieldNewValue - The new value.public static void setStaticField(java.lang.Class<?> clazz,
java.lang.String fieldName,
java.lang.Object fieldNewValue)
Reflectively set the value of a static field.
clazz - Target class.fieldName - The field name.fieldNewValue - The new value.public static <R> R callInstanceMethod(java.lang.Object instance,
java.lang.String methodName,
ReflectionHelpers.ClassParameter<?>... classParameters)
Reflectively call an instance method on an object.
R - The return type.instance - Target object.methodName - The method name to call.classParameters - Array of parameter types and values.public static <R> R callInstanceMethod(java.lang.Class<?> cl,
java.lang.Object instance,
java.lang.String methodName,
ReflectionHelpers.ClassParameter<?>... classParameters)
Reflectively call an instance method on an object on a specific class.
R - The return type.cl - The class.instance - Target object.methodName - The method name to call.classParameters - Array of parameter types and values.public static <R> R callStaticMethod(java.lang.Class<?> clazz,
java.lang.String methodName,
ReflectionHelpers.ClassParameter<?>... classParameters)
Reflectively call a static method on a class.
R - The return type.clazz - Target class.methodName - The method name to call.classParameters - Array of parameter types and values.public static java.lang.Class<?> loadClass(java.lang.ClassLoader classLoader,
java.lang.String fullyQualifiedClassName)
Load a class.
classLoader - The class loader.fullyQualifiedClassName - The fully qualified class name.public static <T> T newInstance(java.lang.Class<T> cl)
Create a new instance of a class
T - The class type.cl - The class object.public static <R> R callConstructor(java.lang.Class<? extends R> clazz,
ReflectionHelpers.ClassParameter<?>... classParameters)
Reflectively call the constructor of an object.
R - The return type.clazz - Target class.classParameters - Array of parameter types and values.public static java.lang.Object defaultValueForType(java.lang.String returnType)