|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jboss.weld.extensions.reflection.Reflections
public class Reflections
Utility class for working with JDK Reflection and also CDI's
Annotated
metadata.
Field Summary | |
---|---|
static Annotation[] |
EMPTY_ANNOTATION_ARRAY
An empty array of type Annotation , useful converting lists to
arrays. |
static Object[] |
EMPTY_OBJECT_ARRAY
An empty array of type Object , useful for converting lists to
arrays. |
Method Summary | ||
---|---|---|
static
|
cast(Object obj)
Perform a runtime cast. |
|
static Class<?> |
classForName(String name,
ClassLoader... loaders)
Loads and initializes a class for the given name. |
|
static Constructor<?> |
findDeclaredConstructor(Class<?> clazz,
Class<?>... args)
Search the class hierarchy for a constructor with the given arguments. |
|
static Field |
findDeclaredField(Class<?> clazz,
String name)
Search the class hierarchy for a field with the given name. |
|
static Method |
findDeclaredMethod(Class<?> clazz,
String name,
Class<?>... args)
Search the class hierarchy for a method with the given name and arguments. |
|
static Set<Constructor<?>> |
getAllDeclaredConstructors(Class<?> clazz)
Get all the declared constructors on the class hierarchy. |
|
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 Set<Annotation> |
getAnnotationsWithMetaAnnotation(Set<Annotation> annotations,
Class<? extends Annotation> metaAnnotationType)
Search for annotations with the specified meta annotation type |
|
static
|
getField(javax.enterprise.inject.spi.AnnotatedType<X> annotatedType,
Field field)
Search the annotatedType for the field, returning the AnnotatedField |
|
static Object |
getFieldValue(Field field,
Object instance)
|
|
static
|
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 Class<?> |
getMemberType(Member member)
Get the type of the member |
|
static Set<Annotation> |
getQualifiers(Set<Annotation> annotations,
javax.enterprise.inject.spi.BeanManager beanManager)
Extract any qualifiers from the set of annotations |
|
static
|
getRawType(Type type)
Extract the raw type, given a type. |
|
static
|
invokeMethod(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(Method method,
Object instance,
Object... args)
Invoke the method on the instance, with any arguments specified. |
|
static boolean |
isSerializable(Class<?> clazz)
Check if a class is serializable. |
|
static boolean |
methodExists(Class<?> clazz,
String name)
Determine if a method exists in a specified class hierarchy |
|
static void |
setFieldValue(Field field,
Object instance,
Object value)
Set the value of a field on the instance to the specified value. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
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.
Method Detail |
---|
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 on
ClassCastException
- if the type T is not a subtype of the objectClass.cast(Object)
public static Set<Field> getAllDeclaredFields(Class<?> clazz)
clazz
- The class to search
public static Field findDeclaredField(Class<?> clazz, String name)
clazz
- The class to searchname
- The name of the field to search for
public static <X> javax.enterprise.inject.spi.AnnotatedField<? super X> getField(javax.enterprise.inject.spi.AnnotatedType<X> annotatedType, Field field)
AnnotatedField
annotatedType
- The annotatedType to searchfield
- the field to search for
AnnotatedField
found, or null if no field is foundpublic static Set<Annotation> getAnnotationsWithMetaAnnotation(Set<Annotation> annotations, Class<? extends Annotation> metaAnnotationType)
annotations
- The annotation set to searchmetaAnnotationType
- The type of the meta annotation to search for
public static Set<Annotation> getQualifiers(Set<Annotation> annotations, javax.enterprise.inject.spi.BeanManager beanManager)
annotations
- The set of annotations to searchbeanManager
- The beanManager to use to establish if an annotation is
a qualifier
public static boolean methodExists(Class<?> clazz, String name)
clazz
- The class to searchname
- The name of the method
public static Set<Method> getAllDeclaredMethods(Class<?> clazz)
clazz
- The class to search
public static Method findDeclaredMethod(Class<?> clazz, String name, Class<?>... args)
clazz
- The class to searchname
- The name of the method to search forargs
- The arguments of the method to search for
public static Constructor<?> findDeclaredConstructor(Class<?> clazz, Class<?>... args)
clazz
- The class to searchargs
- The arguments of the constructor to search for
public static Set<Constructor<?>> getAllDeclaredConstructors(Class<?> clazz)
clazz
- The class to search
public static Class<?> getMemberType(Member member)
member
- The member
UnsupportedOperationException
- if the member is not a field,
method, or constructorpublic static Class<?> classForName(String name, ClassLoader... loaders) throws ClassNotFoundException
Loads and initializes a class for the given name.
If the Thread Context Class Loader is available, it will be used,
otherwise the classloader used to load Reflections
will be used
It is also possible to specify additional classloaders to attempt to load the class with. If the first attempt fails, then these additional loaders are tried in order.
name
- the name of the class to loadloaders
- additional classloaders to use to attempt to load the class
ClassNotFoundException
- if the class cannot be foundpublic static Object invokeMethod(Method method, Object instance, Object... args)
Invoke the method on the instance, with any arguments specified.
This method wraps Method.invoke(Object, Object...)
, converting the
checked exceptions that Method.invoke(Object, Object...)
specifies
to runtime exceptions.
method
- the method to invokeinstance
- the instance to invoke the method or null if the method is
staticargs
- the arguments to the method
RuntimeException
- 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.
ExceptionInInitializerError
- if the initialization provoked by this
method fails.Method.invoke(Object, Object...)
public static <T> T invokeMethod(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.
method
- the method to invokeinstance
- the instance to invoke the methodargs
- the arguments to the method
RuntimeException
- 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 expectedReturnType
ExceptionInInitializerError
- if the initialization provoked by this
method fails.Method.invoke(Object, Object...)
public static void setFieldValue(Field field, Object instance, Object value)
Set the value of a field on the instance to the specified value.
This method wraps Field.set(Object, Object)
, converting the
checked exceptions that Field.set(Object, Object)
specifies to
runtime exceptions.
field
- the field on which to operate, or null if the field is staticinstance
- the instance on which the field value should be set uponvalue
- the value to set the field to
RuntimeException
- 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), or if an
unwrapping conversion fails.
NullPointerException
- if the specified instance
is null and the field
is an instance field.
ExceptionInInitializerError
- if the initialization provoked by this
method fails.Field.set(Object, Object)
public static Object getFieldValue(Field field, Object instance)
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 value
RuntimeException
- 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 from
public static boolean isSerializable(Class<?> clazz)
clazz
- The class to check
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |