public class ReflectionHelper extends Object
Constructor and Description |
---|
ReflectionHelper() |
Modifier and Type | Method and Description |
---|---|
static Object |
createObject(String sClassName, ClassLoader classLoader)
Create an Object via reflection (using the specified
ClassLoader ). |
static Object |
createObject(String sClassName, Object[] constructorParameterList, ClassLoader classLoader)
Create an Object via reflection (using the specified
ClassLoader ). |
protected static Class<?>[] |
getClassArrayFromObjectArray(Object[] objectArray)
Returns an array of Class objects representing the class of the objects in the parameter.
|
static Constructor<?> |
getCompatibleConstructor(Class<?> clazz, Class<?>[] parameterTypes)
Get a compatible constructor to the supplied parameter types.
|
static Method |
getCompatibleMethod(Class<?> clazz, String methodName, Object... arguments)
Obtains the
Method that is compatible to the supplied parameter types. |
static Class<?> |
getConcreteType(Type type)
Obtains the concrete (non-parameterized)
Class given a specified (possibly parameterized) type. |
static boolean |
isAssignableFrom(Type x, Type y)
Determines if two types are assignment compatible, that is, the type of y can be assigned to type x.
|
static boolean |
isAssignablePrimitive(Class<?> clzPrimitive, Class<?> clzWrapper)
Determines if a primitive type is assignable to a wrapper type.
|
static boolean |
isCompatibleMethod(Method method, int modifiers, Type returnType, Type... parameterTypes)
Determines if the signature of a
Method is compatible with the specified parameters. |
public static Constructor<?> getCompatibleConstructor(Class<?> clazz, Class<?>[] parameterTypes)
clazz
- the class which we want to constructparameterTypes
- the types required of the constructorpublic static boolean isAssignablePrimitive(Class<?> clzPrimitive, Class<?> clzWrapper)
clzPrimitive
- a primitive class typeclzWrapper
- a wrapper class typepublic static Method getCompatibleMethod(Class<?> clazz, String methodName, Object... arguments)
Method
that is compatible to the supplied parameter types.public static Object createObject(String sClassName, ClassLoader classLoader) throws ClassNotFoundException, NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException
Create an Object via reflection (using the specified ClassLoader
).
sClassName
- the name of the class to instantiate.classLoader
- the ClassLoader
to use to load the class.ClassNotFoundException
- if the class is not foundNoSuchMethodException
- if there is no such constructorInstantiationException
- if it failed to instantiateIllegalAccessException
- if security doesn't allow the callInvocationTargetException
- if the constructor failedpublic static Object createObject(String sClassName, Object[] constructorParameterList, ClassLoader classLoader) throws ClassNotFoundException, NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException
Create an Object via reflection (using the specified ClassLoader
).
sClassName
- the name of the class to instantiate.constructorParameterList
- the set of parameters to pass to the constructorclassLoader
- the ClassLoader
to use to load the class.ClassNotFoundException
- if the class is not foundNoSuchMethodException
- if there is no such constructorInstantiationException
- if it failed to instantiateIllegalAccessException
- if security doesn't allow the callInvocationTargetException
- if the constructor failedprotected static Class<?>[] getClassArrayFromObjectArray(Object[] objectArray)
objectArray
- the array of Objectspublic static Class<?> getConcreteType(Type type)
Class
given a specified (possibly parameterized) type.type
- the typeClass
or null
if there is no concrete class.public static boolean isAssignableFrom(Type x, Type y)
x
- the first typey
- the second type