public abstract class ReflectionUtils extends Object
Only intended for internal use.
Modifier and Type | Class and Description |
---|---|
static interface |
ReflectionUtils.FieldCallback
Callback interface invoked on each field in the hierarchy.
|
static interface |
ReflectionUtils.FieldFilter
Callback optionally used to filter fields to be operated on by a field callback.
|
static interface |
ReflectionUtils.MethodCallback
Action to take on each method.
|
static interface |
ReflectionUtils.MethodFilter
Callback optionally used to filter methods to be operated on by a method callback.
|
Constructor and Description |
---|
ReflectionUtils() |
Modifier and Type | Method and Description |
---|---|
static void |
doWithFields(Class<?> clazz,
ReflectionUtils.FieldCallback fc)
Invoke the given callback on all fields in the target class, going up the class hierarchy to get all declared fields.
|
static void |
doWithFields(Class<?> clazz,
ReflectionUtils.FieldCallback fc,
ReflectionUtils.FieldFilter ff)
Invoke the given callback on all fields in the target class, going up the class hierarchy to get all declared fields.
|
static void |
doWithMethods(Class<?> clazz,
ReflectionUtils.MethodCallback mc)
Perform the given callback operation on all matching methods of the given class and superclasses.
|
static void |
doWithMethods(Class<?> clazz,
ReflectionUtils.MethodCallback mc,
ReflectionUtils.MethodFilter mf)
Perform the given callback operation on all matching methods of the given class and superclasses (or given interface and
super-interfaces).
|
static Method |
findMethod(Class<?> clazz,
String name)
Attempt to find a
Method on the supplied class with the supplied name and no parameters. |
static Method |
findMethod(Class<?> clazz,
String name,
Class<?>... paramTypes)
Attempt to find a
Method on the supplied class with the supplied name and parameter types. |
static Object |
getField(Field field,
Object target)
Get the field represented by the supplied
field object on the specified target object . |
static void |
handleInvocationTargetException(InvocationTargetException ex)
Handle the given invocation target exception.
|
static void |
handleReflectionException(Exception ex)
Handle the given reflection exception.
|
static Object |
invokeMethod(Method method,
Object target)
Invoke the specified
Method against the supplied target object with no arguments. |
static Object |
invokeMethod(Method method,
Object target,
Object... args)
Invoke the specified
Method against the supplied target object with the supplied arguments. |
static void |
rethrowRuntimeException(Throwable ex)
Rethrow the given
exception , which is presumably the target exception of an
InvocationTargetException . |
public static Object getField(Field field, Object target)
field object
on the specified target object
. In
accordance with Field.get(Object)
semantics, the returned value is automatically wrapped if the underlying field
has a primitive type.
Thrown exceptions are handled via a call to handleReflectionException(Exception)
.
field
- the field to gettarget
- the target object from which to get the fieldpublic static Method findMethod(Class<?> clazz, String name)
Method
on the supplied class with the supplied name and no parameters. Searches all
superclasses up to Object
.
Returns null
if no Method
can be found.
clazz
- the class to introspectname
- the name of the methodnull
if none foundpublic static Method findMethod(Class<?> clazz, String name, Class<?>... paramTypes)
Method
on the supplied class with the supplied name and parameter types. Searches all
superclasses up to Object
.
Returns null
if no Method
can be found.
clazz
- the class to introspectname
- the name of the methodparamTypes
- the parameter types of the method (may be null
to indicate any signature)null
if none foundpublic static Object invokeMethod(Method method, Object target)
Method
against the supplied target object with no arguments. The target object can be
null
when invoking a static Method
.
Thrown exceptions are handled via a call to handleReflectionException(java.lang.Exception)
.
method
- the method to invoketarget
- the target object to invoke the method oninvokeMethod(java.lang.reflect.Method, Object, Object[])
public static Object invokeMethod(Method method, Object target, Object... args)
Method
against the supplied target object with the supplied arguments. The target object can
be null
when invoking a static Method
.
Thrown exceptions are handled via a call to handleReflectionException(java.lang.Exception)
.
method
- the method to invoketarget
- the target object to invoke the method onargs
- the invocation arguments (may be null
)public static void handleReflectionException(Exception ex)
Throws the underlying RuntimeException or Error in case of an InvocationTargetException with such a root cause. Throws an IllegalStateException with an appropriate message or UndeclaredThrowableException otherwise.
ex
- the reflection exception to handlepublic static void handleInvocationTargetException(InvocationTargetException ex)
Throws the underlying RuntimeException or Error in case of such a root cause. Throws an UndeclaredThrowableException otherwise.
ex
- the invocation target exception to handlepublic static void rethrowRuntimeException(Throwable ex)
exception
, which is presumably the target exception of an
InvocationTargetException
. Should only be called if no checked exception is expected to be thrown by the target
method.
Rethrows the underlying exception cast to a RuntimeException
or Error
if appropriate; otherwise, throws
an UndeclaredThrowableException
.
ex
- the exception to rethrowRuntimeException
- the rethrown exceptionpublic static void doWithMethods(Class<?> clazz, ReflectionUtils.MethodCallback mc)
The same named method occurring on subclass and superclass will appear twice, unless excluded by a ReflectionUtils.MethodFilter
.
clazz
- the class to introspectmc
- the callback to invoke for each methoddoWithMethods(Class, MethodCallback, MethodFilter)
public static void doWithMethods(Class<?> clazz, ReflectionUtils.MethodCallback mc, ReflectionUtils.MethodFilter mf)
The same named method occurring on subclass and superclass will appear twice, unless excluded by the specified
ReflectionUtils.MethodFilter
.
clazz
- the class to introspectmc
- the callback to invoke for each methodmf
- the filter that determines the methods to apply the callback topublic static void doWithFields(Class<?> clazz, ReflectionUtils.FieldCallback fc)
clazz
- the target class to analyzefc
- the callback to invoke for each fieldpublic static void doWithFields(Class<?> clazz, ReflectionUtils.FieldCallback fc, ReflectionUtils.FieldFilter ff)
clazz
- the target class to analyzefc
- the callback to invoke for each fieldff
- the filter that determines the fields to apply the callback toCopyright © 2022 lettuce.io. All rights reserved.