public class Reflections extends Object
Annotated
metadata.Modifier and Type | Field and Description |
---|---|
static Annotation[] |
EMPTY_ANNOTATION_ARRAY
An empty array of type
Annotation , useful converting lists to
arrays. |
static Class<?>[] |
EMPTY_CLASSES |
static Object[] |
EMPTY_OBJECT_ARRAY
An empty array of type
Object , useful for converting lists to
arrays. |
static Type[] |
EMPTY_TYPES |
Modifier and Type | Method and Description |
---|---|
static <T> T |
cast(Object obj)
Perform a runtime cast.
|
static Set<Field> |
getAllDeclaredFields(Class<?> clazz)
Get all the declared fields on the class hierarchy.
|
static Set<Method> |
getAllDeclaredMethods(Class<?> clazz)
Get all the declared methods on the class hierarchy.
|
static <T> T |
getFieldValue(Field field,
Object instance,
Class<T> expectedType)
Get the value of the field, on the specified instance, casting the value
of the field to the expected type.
|
static <A extends Annotation> |
getMetaAnnotation(javax.enterprise.inject.spi.Annotated element,
Class<A> annotationType)
Inspects an annotated element for the given meta annotation.
|
static Set<Annotation> |
getQualifiers(javax.enterprise.inject.spi.BeanManager beanManager,
Iterable<Annotation>... annotations)
Extract the qualifiers from a set of annotations.
|
static Set<Annotation> |
getQualifiers(javax.enterprise.inject.spi.BeanManager beanManager,
Iterable<Annotation> annotations)
Extract the qualifiers from a set of annotations.
|
static <T> Class<T> |
getRawType(Type type)
Extract the raw type, given a type.
|
static <T> T |
invokeMethod(boolean setAccessible,
Method method,
Class<T> expectedReturnType,
Object instance,
Object... args)
Invoke the method on the instance, with any arguments specified, casting
the result of invoking the method to the expected return type.
|
static Object |
invokeMethod(boolean setAccessible,
Method method,
Object instance,
Object... args)
Invoke the specified method on the provided instance, passing any additional
arguments included in this method as arguments to the specified method.
|
static <T> T |
invokeMethod(Method method,
Class<T> expectedReturnType,
Object instance,
Object... args)
Invoke the specified method on the provided instance, passing any additional
arguments included in this method as arguments to the specified method.
|
static boolean |
isAssignableFrom(Class<?> rawType1,
Type[] actualTypeArguments1,
Class<?> rawType2,
Type[] actualTypeArguments2)
Check the assignability of one type to another, taking into account the
actual type arguements
|
static boolean |
isAssignableFrom(Class<?> rawType1,
Type[] actualTypeArguments1,
Type type2) |
static boolean |
isAssignableFrom(Type[] types1,
Type type2) |
static boolean |
isAssignableFrom(Type[] actualTypeArguments1,
Type[] actualTypeArguments2) |
static boolean |
isAssignableFrom(Type type1,
Type type2) |
static boolean |
isAssignableFrom(Type type1,
Type[] types2) |
static boolean |
isSerializable(Class<?> clazz)
Check if a class is serializable.
|
static boolean |
isTypeBounded(Type type,
Type[] lowerBounds,
Type[] upperBounds) |
static boolean |
matches(Class<?> rawType1,
Type[] actualTypeArguments1,
Class<?> rawType2,
Type[] actualTypeArguments2) |
static boolean |
matches(Class<?> rawType1,
Type[] actualTypeArguments1,
Type type2) |
static boolean |
matches(Set<Type> types1,
Set<Type> types2)
Check whether whether any of the types1 matches a type in types2
|
static boolean |
matches(Type type1,
Set<? extends Type> types2) |
static boolean |
matches(Type type1,
Type type2) |
static <A extends AccessibleObject> |
setAccessible(A member)
Set the accessibility flag on the
AccessibleObject as described in
AccessibleObject.setAccessible(boolean) within the context of
a PrivilegedAction . |
public static final Annotation[] EMPTY_ANNOTATION_ARRAY
Annotation
, useful converting lists to
arrays.public static final Object[] EMPTY_OBJECT_ARRAY
Object
, useful for converting lists to
arrays.public static final Type[] EMPTY_TYPES
public static final Class<?>[] EMPTY_CLASSES
public static <T> T cast(Object obj)
Perform a runtime cast. Similar to Class.cast(Object)
, but useful
when you do not have a Class
object for type you wish to cast to.
Class.cast(Object)
should be used if possible
T
- the type to cast toobj
- the object to perform the cast onClassCastException
- if the type T is not a subtype of the objectClass.cast(Object)
public static Set<Method> getAllDeclaredMethods(Class<?> clazz)
clazz
- The class to searchpublic static <A extends AccessibleObject> A setAccessible(A member)
AccessibleObject
as described in
AccessibleObject.setAccessible(boolean)
within the context of
a PrivilegedAction
.A
- member the accessible object typemember
- the accessible objectpublic static Object invokeMethod(boolean setAccessible, Method method, Object instance, Object... args)
Invoke the specified method on the provided instance, passing any additional arguments included in this method as arguments to the specified method.
This method attempts to set the accessible flag of the method in a
PrivilegedAction
before invoking the method if the first argument
is true.
This method provides the same functionality and throws the same exceptions as
invokeMethod(boolean, Method, Class, Object, Object...)
, with the
expected return type set to Object
.
public static <T> T invokeMethod(Method method, Class<T> expectedReturnType, Object instance, Object... args)
Invoke the specified method on the provided instance, passing any additional arguments included in this method as arguments to the specified method.
This method provides the same functionality and throws the same exceptions as
invokeMethod(boolean, Method, Class, Object, Object...)
, with the
expected return type set to Object
and honoring the accessibility of
the method.
public static <T> T invokeMethod(boolean setAccessible, Method method, Class<T> expectedReturnType, Object instance, Object... args)
Invoke the method on the instance, with any arguments specified, casting the result of invoking the method to the expected return type.
This method wraps Method.invoke(Object, Object...)
, converting the
checked exceptions that Method.invoke(Object, Object...)
specifies
to runtime exceptions.
If instructed, this method attempts to set the accessible flag of the method in a
PrivilegedAction
before invoking the method.
setAccessible
- flag indicating whether method should first be set as
accessiblemethod
- the method to invokeinstance
- the instance to invoke the methodargs
- the arguments to the methodRuntimeException
- if this Method
object enforces Java
language access control and the underlying method is
inaccessible or if the underlying method throws an exception or
if the initialization provoked by this method fails.IllegalArgumentException
- if the method is an instance method and
the specified instance
argument is not an instance
of the class or interface declaring the underlying method (or
of a subclass or implementor thereof); if the number of actual
and formal parameters differ; if an unwrapping conversion for
primitive arguments fails; or if, after possible unwrapping, a
parameter value cannot be converted to the corresponding formal
parameter type by a method invocation conversion.NullPointerException
- if the specified instance
is
null and the method is an instance method.ClassCastException
- if the result of invoking the method cannot be
cast to the expectedReturnTypeExceptionInInitializerError
- if the initialization provoked by this
method fails.Method.invoke(Object, Object...)
public static <T> T getFieldValue(Field field, Object instance, Class<T> expectedType)
Get the value of the field, on the specified instance, casting the value of the field to the expected type.
This method wraps Field.get(Object)
, converting the checked
exceptions that Field.get(Object)
specifies to runtime exceptions.
T
- the type of the field's valuefield
- the field to operate oninstance
- the instance from which to retrieve the valueexpectedType
- the expected type of the field's valueRuntimeException
- if the underlying field is inaccessible.IllegalArgumentException
- if the specified instance
is not an
instance of the class or interface declaring the underlying
field (or a subclass or implementor thereof).NullPointerException
- if the specified instance
is null and the field
is an instance field.ExceptionInInitializerError
- if the initialization provoked by this
method fails.public static <T> Class<T> getRawType(Type type)
T
- the typetype
- the type to extract the raw type frompublic static boolean isSerializable(Class<?> clazz)
clazz
- The class to checkpublic static boolean isAssignableFrom(Class<?> rawType1, Type[] actualTypeArguments1, Class<?> rawType2, Type[] actualTypeArguments2)
rawType1
- the raw type of the class to checkactualTypeArguments1
- the actual type arguements to check, or an
empty array if not a parameterized typerawType2
- the raw type of the class to checkactualTypeArguments2
- the actual type arguements to check, or an
empty array if not a parameterized typepublic static boolean matches(Class<?> rawType1, Type[] actualTypeArguments1, Class<?> rawType2, Type[] actualTypeArguments2)
public static boolean isAssignableFrom(Type[] actualTypeArguments1, Type[] actualTypeArguments2)
public static boolean isTypeBounded(Type type, Type[] lowerBounds, Type[] upperBounds)
public static boolean isAssignableFrom(Class<?> rawType1, Type[] actualTypeArguments1, Type type2)
public static boolean matches(Set<Type> types1, Set<Type> types2)
types1
- types2
- public static <A extends Annotation> A getMetaAnnotation(javax.enterprise.inject.spi.Annotated element, Class<A> annotationType)
element
- The element to inspectannotationType
- The meta annotation to search forpublic static Set<Annotation> getQualifiers(javax.enterprise.inject.spi.BeanManager beanManager, Iterable<Annotation> annotations)
beanManager
- the beanManager to use to determine if an annotation is
a qualifierannotations
- the annotations to checkannotations
public static Set<Annotation> getQualifiers(javax.enterprise.inject.spi.BeanManager beanManager, Iterable<Annotation>... annotations)
beanManager
- the beanManager to use to determine if an annotation is
a qualifierannotations
- the annotations to checkannotations
Copyright © 2014 JBoss, a division of Red Hat. All Rights Reserved.