|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectjodd.util.ReflectUtil
public class ReflectUtil
Various java.lang.reflect utilities.
| Field Summary | |
|---|---|
static java.lang.String |
METHOD_GET_PREFIX
|
static java.lang.String |
METHOD_IS_PREFIX
|
static java.lang.String |
METHOD_SET_PREFIX
|
static java.lang.Object[] |
NO_ARGUMENTS
an empty object array |
static java.lang.Class[] |
NO_PARAMETERS
an empty class array |
static java.lang.reflect.Type[] |
NO_TYPES
an empty object array |
| Constructor Summary | |
|---|---|
ReflectUtil()
|
|
| Method Summary | |
|---|---|
static boolean |
compareDeclarations(java.lang.reflect.Method first,
java.lang.reflect.Method second)
Compares method declarations: signature and return types. |
static boolean |
compareParameters(java.lang.Class[] first,
java.lang.Class[] second)
Compares method or ctor parameters. |
static boolean |
compareSignatures(java.lang.reflect.Constructor first,
java.lang.reflect.Constructor second)
Compares constructor signatures: names and parameters. |
static boolean |
compareSignatures(java.lang.reflect.Field first,
java.lang.reflect.Field second)
|
static boolean |
compareSignatures(java.lang.reflect.Method first,
java.lang.reflect.Method second)
Compares method signatures: names and parameters. |
static java.lang.reflect.Method |
findDeclaredMethod(java.lang.Class c,
java.lang.String methodName)
|
static java.lang.reflect.Method |
findMethod(java.lang.Class c,
java.lang.String methodName)
Returns method from an object, matched by name. |
static void |
forceAccess(java.lang.reflect.AccessibleObject accObject)
Suppress access check against a reflection object. |
static java.lang.reflect.Field[] |
getAccessibleFields(java.lang.Class clazz)
|
static java.lang.reflect.Field[] |
getAccessibleFields(java.lang.Class clazz,
java.lang.Class limit)
|
static java.lang.reflect.Method[] |
getAccessibleMethods(java.lang.Class clazz)
Returns array of all methods that are accessible from given class. |
static java.lang.reflect.Method[] |
getAccessibleMethods(java.lang.Class clazz,
java.lang.Class limit)
Returns array of all methods that are accessible from given class, upto limit (usually Object.class). |
static java.lang.String |
getBeanPropertyGetterName(java.lang.reflect.Method method)
Returns beans property getter name or null if method is not a real getter. |
static java.lang.String |
getBeanPropertySetterName(java.lang.reflect.Method method)
Returns beans property setter name or null if method is not a real setter. |
static java.lang.Class[] |
getClasses(java.lang.Object... objects)
Returns classes from array of specified objects. |
static java.lang.Class |
getComponentType(java.lang.reflect.Type type)
Returns component type of the given type. |
static java.lang.Class |
getComponentType(java.lang.reflect.Type type,
int index)
Returns the component type of the given type. |
static java.lang.Class |
getGenericSupertype(java.lang.Class type)
|
static java.lang.Class |
getGenericSupertype(java.lang.Class type,
int index)
|
static java.lang.reflect.Method |
getMethod0(java.lang.Class c,
java.lang.String name,
java.lang.Class... parameterTypes)
Invokes private Class.getMethod0() without throwing NoSuchMethodException. |
static java.lang.Class[] |
getSuperclasses(java.lang.Class type)
Returns all superclasses. |
static java.lang.reflect.Field[] |
getSupportedFields(java.lang.Class clazz)
|
static java.lang.reflect.Field[] |
getSupportedFields(java.lang.Class clazz,
java.lang.Class limit)
|
static java.lang.reflect.Method[] |
getSupportedMethods(java.lang.Class clazz)
|
static java.lang.reflect.Method[] |
getSupportedMethods(java.lang.Class clazz,
java.lang.Class limit)
Returns a Method array of the methods to which instances of the specified
respond except for those methods defined in the class specified by limit
or any of its superclasses. |
static java.lang.Object |
invoke(java.lang.Class c,
java.lang.Object obj,
java.lang.String method,
java.lang.Class[] paramClasses,
java.lang.Object[] params)
Invokes accessible method of an object. |
static java.lang.Object |
invoke(java.lang.Class c,
java.lang.Object obj,
java.lang.String method,
java.lang.Object[] params)
|
static java.lang.Object |
invoke(java.lang.Object obj,
java.lang.String method,
java.lang.Class[] paramClasses,
java.lang.Object[] params)
Invokes accessible method of an object. |
static java.lang.Object |
invoke(java.lang.Object obj,
java.lang.String method,
java.lang.Object[] params)
Invokes accessible method of an object without specifying parameter types. |
static java.lang.Object |
invokeDeclared(java.lang.Class c,
java.lang.Object obj,
java.lang.String method,
java.lang.Class[] paramClasses,
java.lang.Object[] params)
Invokes any method of a class, even private ones. |
static java.lang.Object |
invokeDeclared(java.lang.Class c,
java.lang.Object obj,
java.lang.String method,
java.lang.Object[] params)
|
static java.lang.Object |
invokeDeclared(java.lang.Object obj,
java.lang.String method,
java.lang.Class[] paramClasses,
java.lang.Object[] params)
Invokes any method of a class suppressing java access checking. |
static java.lang.Object |
invokeDeclared(java.lang.Object obj,
java.lang.String method,
java.lang.Object[] params)
|
static boolean |
isAssignableFrom(java.lang.reflect.Member member1,
java.lang.reflect.Member member2)
Returns true if the first member is accessible from second one. |
static boolean |
isBeanProperty(java.lang.reflect.Method method)
Returns true if method is a bean property. |
static boolean |
isBeanPropertyGetter(java.lang.reflect.Method method)
Returns true if method is bean getter. |
static boolean |
isBeanPropertySetter(java.lang.reflect.Method method)
Returns true if method is bean setter. |
static boolean |
isInstanceOf(java.lang.Object o,
java.lang.Class target)
Dynamic version of instanceof. |
static boolean |
isInterfaceImpl(java.lang.Class thisClass,
java.lang.Class targetInterface)
Returns true if provided class is interface implementation. |
static boolean |
isObjectMethod(java.lang.reflect.Method method)
Returns true if method defined in Object class. |
static boolean |
isPublic(java.lang.Class c)
Returns true if class is public. |
static boolean |
isPublic(java.lang.reflect.Member member)
Returns true if class member is public. |
static boolean |
isPublicPublic(java.lang.reflect.Member member)
Returns true if class member is public and if its declaring class is also public. |
static boolean |
isSubclass(java.lang.Class thisClass,
java.lang.Class target)
Determines if first class match the destination and simulates kind of instanceof. |
static boolean |
isUserDefinedMethod(java.lang.reflect.Method method)
Returns true if method is user defined and not defined in Object class. |
static java.lang.Object |
newInstance(java.lang.Class type)
Creates new instances including for common mutable classes that do not have a default constructor. |
static java.lang.Object |
readAnnotationValue(java.lang.annotation.Annotation annotation,
java.lang.String name)
Reads annotation value. |
static java.lang.Class |
toClass(java.lang.reflect.Type type)
Returns Class for the given type. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final java.lang.Class[] NO_PARAMETERS
public static final java.lang.Object[] NO_ARGUMENTS
public static final java.lang.reflect.Type[] NO_TYPES
public static final java.lang.String METHOD_GET_PREFIX
public static final java.lang.String METHOD_IS_PREFIX
public static final java.lang.String METHOD_SET_PREFIX
| Constructor Detail |
|---|
public ReflectUtil()
| Method Detail |
|---|
public static java.lang.reflect.Method getMethod0(java.lang.Class c,
java.lang.String name,
java.lang.Class... parameterTypes)
Class.getMethod0() without throwing NoSuchMethodException.
Returns only public methods or null if method not found. Since no exception is
throwing, it works faster.
c - class to inspectname - name of method to findparameterTypes - parameter types
public static java.lang.reflect.Method findMethod(java.lang.Class c,
java.lang.String methodName)
c - class to examinemethodName - Full name of the method.
public static java.lang.reflect.Method findDeclaredMethod(java.lang.Class c,
java.lang.String methodName)
public static java.lang.Class[] getClasses(java.lang.Object... objects)
public static java.lang.Object invoke(java.lang.Class c,
java.lang.Object obj,
java.lang.String method,
java.lang.Class[] paramClasses,
java.lang.Object[] params)
throws java.lang.IllegalAccessException,
java.lang.NoSuchMethodException,
java.lang.reflect.InvocationTargetException
c - class that contains methodobj - object to executemethod - method to invokeparamClasses - classes of parametersparams - parameters
java.lang.IllegalAccessException
java.lang.NoSuchMethodException
java.lang.reflect.InvocationTargetException
public static java.lang.Object invoke(java.lang.Object obj,
java.lang.String method,
java.lang.Class[] paramClasses,
java.lang.Object[] params)
throws java.lang.IllegalAccessException,
java.lang.NoSuchMethodException,
java.lang.reflect.InvocationTargetException
obj - objectmethod - name of the objects methodparams - method parametersparamClasses - method parameter types
java.lang.IllegalAccessException
java.lang.NoSuchMethodException
java.lang.reflect.InvocationTargetException
public static java.lang.Object invoke(java.lang.Object obj,
java.lang.String method,
java.lang.Object[] params)
throws java.lang.IllegalAccessException,
java.lang.NoSuchMethodException,
java.lang.reflect.InvocationTargetException
obj - objectmethod - method of an objectparams - method parameters
java.lang.IllegalAccessException
java.lang.NoSuchMethodException
java.lang.reflect.InvocationTargetException
public static java.lang.Object invoke(java.lang.Class c,
java.lang.Object obj,
java.lang.String method,
java.lang.Object[] params)
throws java.lang.IllegalAccessException,
java.lang.NoSuchMethodException,
java.lang.reflect.InvocationTargetException
java.lang.IllegalAccessException
java.lang.NoSuchMethodException
java.lang.reflect.InvocationTargetException
public static java.lang.Object invokeDeclared(java.lang.Class c,
java.lang.Object obj,
java.lang.String method,
java.lang.Class[] paramClasses,
java.lang.Object[] params)
throws java.lang.IllegalAccessException,
java.lang.NoSuchMethodException,
java.lang.reflect.InvocationTargetException
c - class to examineobj - object to inspectmethod - method to invokeparamClasses - parameter typesparams - parameters
java.lang.IllegalAccessException
java.lang.NoSuchMethodException
java.lang.reflect.InvocationTargetException
public static java.lang.Object invokeDeclared(java.lang.Object obj,
java.lang.String method,
java.lang.Class[] paramClasses,
java.lang.Object[] params)
throws java.lang.IllegalAccessException,
java.lang.NoSuchMethodException,
java.lang.reflect.InvocationTargetException
obj - object to inspectmethod - method to invokeparamClasses - parameter typesparams - parameters
java.lang.IllegalAccessException
java.lang.NoSuchMethodException
java.lang.reflect.InvocationTargetException
public static java.lang.Object invokeDeclared(java.lang.Object obj,
java.lang.String method,
java.lang.Object[] params)
throws java.lang.IllegalAccessException,
java.lang.NoSuchMethodException,
java.lang.reflect.InvocationTargetException
java.lang.IllegalAccessException
java.lang.NoSuchMethodException
java.lang.reflect.InvocationTargetException
public static java.lang.Object invokeDeclared(java.lang.Class c,
java.lang.Object obj,
java.lang.String method,
java.lang.Object[] params)
throws java.lang.IllegalAccessException,
java.lang.NoSuchMethodException,
java.lang.reflect.InvocationTargetException
java.lang.IllegalAccessException
java.lang.NoSuchMethodException
java.lang.reflect.InvocationTargetException
public static boolean isSubclass(java.lang.Class thisClass,
java.lang.Class target)
instanceof. All subclasses and interface of first class
are examined against second class. Method is not symmetric.
public static boolean isInterfaceImpl(java.lang.Class thisClass,
java.lang.Class targetInterface)
true if provided class is interface implementation.
public static boolean isInstanceOf(java.lang.Object o,
java.lang.Class target)
instanceof.
o - object to matchtarget - target class
true if object is an instance of target classpublic static java.lang.reflect.Method[] getAccessibleMethods(java.lang.Class clazz)
getAccessibleMethods(Class, Class)
public static java.lang.reflect.Method[] getAccessibleMethods(java.lang.Class clazz,
java.lang.Class limit)
Object.class). Abstract methods are ignored.
public static java.lang.reflect.Field[] getAccessibleFields(java.lang.Class clazz)
public static java.lang.reflect.Field[] getAccessibleFields(java.lang.Class clazz,
java.lang.Class limit)
public static java.lang.reflect.Method[] getSupportedMethods(java.lang.Class clazz)
public static java.lang.reflect.Method[] getSupportedMethods(java.lang.Class clazz,
java.lang.Class limit)
Method array of the methods to which instances of the specified
respond except for those methods defined in the class specified by limit
or any of its superclasses. Note that limit is usually used to eliminate
them methods defined by java.lang.Object. If limit is null then all
methods are returned.
public static java.lang.reflect.Field[] getSupportedFields(java.lang.Class clazz)
public static java.lang.reflect.Field[] getSupportedFields(java.lang.Class clazz,
java.lang.Class limit)
public static boolean compareDeclarations(java.lang.reflect.Method first,
java.lang.reflect.Method second)
public static boolean compareSignatures(java.lang.reflect.Method first,
java.lang.reflect.Method second)
public static boolean compareSignatures(java.lang.reflect.Constructor first,
java.lang.reflect.Constructor second)
public static boolean compareSignatures(java.lang.reflect.Field first,
java.lang.reflect.Field second)
public static boolean compareParameters(java.lang.Class[] first,
java.lang.Class[] second)
public static void forceAccess(java.lang.reflect.AccessibleObject accObject)
public static boolean isPublic(java.lang.reflect.Member member)
true if class member is public.
public static boolean isPublicPublic(java.lang.reflect.Member member)
true if class member is public and if its declaring class is also public.
public static boolean isPublic(java.lang.Class c)
true if class is public.
public static java.lang.Object newInstance(java.lang.Class type)
throws java.lang.IllegalAccessException,
java.lang.InstantiationException
if blocks
is faster then using a HashMap.
java.lang.IllegalAccessException
java.lang.InstantiationException
public static boolean isAssignableFrom(java.lang.reflect.Member member1,
java.lang.reflect.Member member2)
true if the first member is accessible from second one.
public static java.lang.Class[] getSuperclasses(java.lang.Class type)
public static boolean isUserDefinedMethod(java.lang.reflect.Method method)
true if method is user defined and not defined in Object class.
public static boolean isObjectMethod(java.lang.reflect.Method method)
true if method defined in Object class.
public static boolean isBeanProperty(java.lang.reflect.Method method)
true if method is a bean property.
public static boolean isBeanPropertyGetter(java.lang.reflect.Method method)
true if method is bean getter.
public static java.lang.String getBeanPropertyGetterName(java.lang.reflect.Method method)
null if method is not a real getter.
public static boolean isBeanPropertySetter(java.lang.reflect.Method method)
true if method is bean setter.
public static java.lang.String getBeanPropertySetterName(java.lang.reflect.Method method)
null if method is not a real setter.
public static java.lang.Class getComponentType(java.lang.reflect.Type type)
type.
For ParameterizedType it returns the last type in array.
public static java.lang.Class getComponentType(java.lang.reflect.Type type,
int index)
type.
type - is the type where to get the component type from.
type or
null if the given type does NOT have
a single (component) type.
public static java.lang.Class getGenericSupertype(java.lang.Class type,
int index)
public static java.lang.Class getGenericSupertype(java.lang.Class type)
public static java.lang.Class toClass(java.lang.reflect.Type type)
Class for the given type.type |
getSimpleType(type) |
|---|---|
String |
String |
List<String> |
List |
<T extends MyClass> T[] |
MyClass[] |
type - is the type to convert.
type.
public static java.lang.Object readAnnotationValue(java.lang.annotation.Annotation annotation,
java.lang.String name)
null on error.
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||