public final class ReflectionUtils
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static java.lang.reflect.Method |
OBJECT_EQUALS |
static java.lang.reflect.Method |
OBJECT_FINALIZE |
static java.lang.reflect.Method |
OBJECT_HASHCODE |
static java.lang.reflect.Method |
OBJECT_TOSTRING |
private static java.util.Map<java.lang.Class<?>,java.lang.Class<?>> |
primitiveToWrapperType |
| Modifier | Constructor and Description |
|---|---|
private |
ReflectionUtils() |
| Modifier and Type | Method and Description |
|---|---|
static java.lang.reflect.Method |
findMethod(java.lang.Class<?> clazz,
java.lang.String name)
Attempt to find a
Method on the supplied class with the supplied
name and no parameters. |
static java.lang.reflect.Method |
findMethod(java.lang.Class<?> clazz,
java.lang.String name,
java.lang.Class<?>... paramTypes)
Attempt to find a
Method on the supplied class with the supplied
name and parameter types. |
static <T> java.lang.reflect.Constructor<T> |
getConstructor(java.lang.Class<T> clazz,
java.lang.Object... objs)
Returns a constructor that contains
objs as arguments. |
static java.lang.reflect.Method |
getDeclaredMethod(java.lang.Class<?> clazz,
java.lang.String name,
java.lang.Class<?>... paramTypes)
Basically calls getDeclaredMethod on a Class but wraps the
NoSuchMethodException into a Runtime.
|
static boolean |
isClassAvailable(java.lang.String className)
Tells if a class is available in the classpath
|
private static boolean |
isMatchingConstructor(java.lang.reflect.Constructor<?> classConstructor,
java.lang.Object... objs)
Returns true if objects in
objs are eligible to be passed to
classConstructor. |
private static java.lang.Class<?> |
wrapPrimitive(java.lang.Class<?> parameterType)
Given a primitive type, returns its boxed equivalent.
|
private static final java.util.Map<java.lang.Class<?>,java.lang.Class<?>> primitiveToWrapperType
public static final java.lang.reflect.Method OBJECT_EQUALS
public static final java.lang.reflect.Method OBJECT_HASHCODE
public static final java.lang.reflect.Method OBJECT_TOSTRING
public static final java.lang.reflect.Method OBJECT_FINALIZE
public static java.lang.reflect.Method findMethod(java.lang.Class<?> clazz,
java.lang.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 java.lang.reflect.Method findMethod(java.lang.Class<?> clazz,
java.lang.String name,
java.lang.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 <T> java.lang.reflect.Constructor<T> getConstructor(java.lang.Class<T> clazz,
java.lang.Object... objs)
throws java.lang.NoSuchMethodException
objs as arguments.
We could not do something like clazz.getConstructor(objs.class())
because that would require casting all the passed arguments to the exact
parameter types of the desired constructor.
T - type of the class searchedclazz - class on which we are searching the constructorobjs - list of arguments of the constructorobjsjava.lang.NoSuchMethodException - when the constructor with args does not exist or is
ambiguousprivate static boolean isMatchingConstructor(java.lang.reflect.Constructor<?> classConstructor,
java.lang.Object... objs)
objs are eligible to be passed to
classConstructor.private static java.lang.Class<?> wrapPrimitive(java.lang.Class<?> parameterType)
int, returns Integer.parameterType - the primitive typepublic static java.lang.reflect.Method getDeclaredMethod(java.lang.Class<?> clazz,
java.lang.String name,
java.lang.Class<?>... paramTypes)
clazz - class on which the getDeclaredMethod is calledname - method nameparamTypes - method parameterspublic static boolean isClassAvailable(java.lang.String className)
className - full class name