public abstract class ReflectionUtils extends Object
| Modifier and Type | Method and Description |
|---|---|
static Class<?> |
declaringClass(Class<?> instanceClass,
String methodName,
Class<?>... parameterTypes)
Returns the class on which the method with given
methodName and parameters of type
parameterTypes is declared. |
static <T extends AccessibleObject> |
ensureAccessible(T member)
Makes the given
member accessible via reflection if it is not the case already. |
static boolean |
explicitlyUnequal(Object value,
Object otherValue)
Indicates whether the two given objects are not the same, override an equals method that indicates
they are not equal, or implements
Comparable which indicates the two are not equal. |
static Iterable<Field> |
fieldsOf(Class<?> clazz)
Returns an
Iterable of all the fields declared on the given class and its super classes. |
static <R> R |
getFieldValue(Field field,
Object object)
Returns the value of the given
field in the given object. |
static boolean |
hasEqualsMethod(Class<?> type)
Indicates whether the given class implements a customized equals method.
|
static boolean |
isAccessible(AccessibleObject member)
Indicates whether the given
member is accessible. |
static boolean |
isNonFinalPublicMember(Member member)
Checks whether the given
member is public and non-final. |
static boolean |
isTransient(Field field)
Indicates whether the given field has the "transient" modifier
|
static Method |
methodOf(Class<?> clazz,
String methodName,
Class<?>... parameterTypes)
Utility function which returns a
Method matching the given methodName and
parameterTypes in the clazz. |
static Iterable<Method> |
methodsOf(Class<?> clazz)
Returns an
Iterable of all the methods declared on the given class and its super classes. |
static Optional<Class<?>> |
resolveGenericType(Field field,
int genericTypeIndex)
Resolve a generic type parameter from a field declaration
|
static Class<?> |
resolvePrimitiveWrapperType(Class<?> primitiveType)
Returns the boxed wrapper type for the given
primitiveType. |
static <T> void |
setFieldValue(Field field,
Object object,
T value)
Set the
field of object to a certain value. |
public static <R> R getFieldValue(Field field, Object object)
field in the given object. If necessary, the field is
made accessible, assuming the security manager allows it.field - The field containing the valueobject - The object to retrieve the field's value fromfield in the objectIllegalStateException - if the field is not accessible and the security manager doesn't allow it to be
made accessiblepublic static <T> void setFieldValue(Field field, Object object, T value)
field of object to a certain value. If necessary, the field is made accessible,
assuming the security manager allows it.T - The type of the valuefield - The field to set value onobject - The object to set the value on fieldvalue - The value to set on fieldpublic static Class<?> declaringClass(Class<?> instanceClass, String methodName, Class<?>... parameterTypes)
methodName and parameters of type
parameterTypes is declared. The given instanceClass is the instance on which the
method can be called. If the method is not available on the given instanceClass, null
is returned.instanceClass - The class on which to look for the methodmethodName - The name of the methodparameterTypes - The parameter types of the methodnull if not foundpublic static boolean hasEqualsMethod(Class<?> type)
Object.type - The type to inspecttrue if the given type overrides the equals method, otherwise falsepublic static boolean explicitlyUnequal(Object value, Object otherValue)
Comparable which indicates the two are not equal. If this
method cannot safely indicate two objects are not equal, it returns
false.value - One of the values to compareotherValue - other value to comparetrue if these objects explicitly indicate they are not equal, false otherwise.public static <T extends AccessibleObject> T ensureAccessible(T member)
member accessible via reflection if it is not the case already.T - The type of member to make accessiblemember - The member (field, method, constructor, etc) to make accessiblemember, for easier method chainingIllegalStateException - if the member is not accessible and the security manager doesn't allow it to be
made accessiblepublic static boolean isAccessible(AccessibleObject member)
member is accessible. It does so by checking whether the member is
non-final and public, or made accessible via reflection.member - The member (field, method, constructor, etc) to check for accessibilitytrue if the member is accessible, otherwise false.public static boolean isNonFinalPublicMember(Member member)
member is public and non-final. These members do no need to be set
accessible using reflection.member - The member to checktrue if the member is public and non-final, otherwise false.isAccessible(java.lang.reflect.AccessibleObject),
ensureAccessible(java.lang.reflect.AccessibleObject)public static Iterable<Field> fieldsOf(Class<?> clazz)
Iterable of all the fields declared on the given class and its super classes. The iterator
will always return fields declared in a subtype before returning fields declared in a super type.clazz - The class to return fields forIterable providing access to all declared fields in the class hierarchypublic static Method methodOf(Class<?> clazz, String methodName, Class<?>... parameterTypes) throws NoSuchMethodException
Method matching the given methodName and
parameterTypes in the clazz.clazz - The Class to return a method formethodName - A String for the simple name of the method to returnparameterTypes - An array of type Class for all the parameters which are part of the
Method being searched forMethod object from the given clazz matching the specified
methodNameNoSuchMethodException - if no Method can be found matching the methodName
in clazzpublic static Iterable<Method> methodsOf(Class<?> clazz)
Iterable of all the methods declared on the given class and its super classes. The iterator
will always return methods declared in a subtype before returning methods declared in a super type.clazz - The class to return methods forIterable providing access to all declared methods in the class hierarchypublic static Class<?> resolvePrimitiveWrapperType(Class<?> primitiveType)
primitiveType.primitiveType - The primitive type to return boxed wrapper type forprimitiveTypeIllegalArgumentException - will be thrown instead of returning null if no wrapper class was found.public static boolean isTransient(Field field)
field - the field to inspecttrue if the field is marked transient, otherwise false
public static Optional<Class<?>> resolveGenericType(Field field, int genericTypeIndex)
field - The field to find generic parameters forgenericTypeIndex - The index of the typeCopyright © 2010–2018. All rights reserved.