Class ReflectionUtils
- java.lang.Object
-
- org.reflections.util.ReflectionUtilsPredicates
-
- org.reflections.ReflectionUtils
-
public abstract class ReflectionUtils extends ReflectionUtilsPredicates
utils for querying java reflection meta typessee
SuperTypes
,Annotations
,AnnotationTypes
,Methods
,Constructors
andFields
.Set<Class<?>> supertypes = get(SuperTypes.of(type)) Set<Annotation> annotations = get(Annotations.of(type))
generally, apply
get(QueryFunction)
onQueryFunction
created byUtilQueryBuilder
, and optionally use the functional methods in QueryFunction.get(Methods.of(type) .filter(withPublic().and(withPrefix("get")).and(withParameterCount(0))) .as(Method.class) .map(m -> ...))
or (previously), use
getAllXXX(type/s, withYYY)
methods:getAllSuperTypes(), getAllFields(), getAllMethods(), getAllConstructors()
some predicates included here:
ReflectionUtilsPredicates.withPublic()
ReflectionUtilsPredicates.withParametersCount(int)
}ReflectionUtilsPredicates.withAnnotation(java.lang.annotation.Annotation)
ReflectionUtilsPredicates.withParameters(Class[])
ReflectionUtilsPredicates.withModifier(int)
ReflectionUtilsPredicates.withReturnType(Class)
import static org.reflections.ReflectionUtils.*; Set<Method> getters = get(Methods(classes) .filter(withModifier(Modifier.PUBLIC).and(withPrefix("get")).and(withParametersCount(0))); get(Annotations.of(method) .filter(withAnnotation()) .map(annotation -> Methods.of(annotation) .map(method -> ))))) .stream()...
-
-
Field Summary
Fields Modifier and Type Field Description static UtilQueryBuilder<java.lang.reflect.AnnotatedElement,java.lang.annotation.Annotation>
Annotations
query annotationsstatic UtilQueryBuilder<java.lang.reflect.AnnotatedElement,java.lang.Class<? extends java.lang.annotation.Annotation>>
AnnotationTypes
query annotation typesstatic UtilQueryBuilder<java.lang.Class<?>,java.lang.reflect.Constructor>
Constructors
query constructorsstatic UtilQueryBuilder<java.lang.Class<?>,java.lang.reflect.Field>
Fields
query fieldsstatic UtilQueryBuilder<java.lang.Class<?>,java.lang.Class<?>>
Interfaces
query interfacesstatic UtilQueryBuilder<java.lang.Class<?>,java.lang.reflect.Method>
Methods
query methodsstatic java.util.function.Predicate<java.lang.reflect.Method>
notObjectMethod
predicate to filter outObject
methodsprivate static java.util.List<java.lang.String>
objectMethodNames
static UtilQueryBuilder<java.lang.String,java.net.URL>
Resources
query url resources usingClassLoader.getResources(java.lang.String)
static UtilQueryBuilder<java.lang.Class<?>,java.lang.Class<?>>
SuperClass
query super classstatic UtilQueryBuilder<java.lang.Class<?>,java.lang.Class<?>>
SuperTypes
query super classes and interfaces including element
-
Constructor Summary
Constructors Constructor Description ReflectionUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <T extends java.lang.reflect.AnnotatedElement>
UtilQueryBuilder<java.lang.reflect.AnnotatedElement,T>extendType()
static <C,T>
java.util.Set<T>get(QueryFunction<C,T> function)
get type elements<T>
by applyingQueryFunction
static <T> java.util.Set<T>
get(QueryFunction<Store,T> queryFunction, java.util.function.Predicate<? super T>... predicates)
static <T extends java.lang.reflect.AnnotatedElement>
java.util.Set<java.lang.annotation.Annotation>getAllAnnotations(T type, java.util.function.Predicate<java.lang.annotation.Annotation>... predicates)
get all annotations of giventype
, up the super class hierarchy, optionally filtered bypredicates
static java.util.Set<java.lang.reflect.Constructor>
getAllConstructors(java.lang.Class<?> type, java.util.function.Predicate<? super java.lang.reflect.Constructor>... predicates)
get all constructors of giventype
, up the super class hierarchy, optionally filtered bypredicates
static java.util.Set<java.lang.reflect.Field>
getAllFields(java.lang.Class<?> type, java.util.function.Predicate<? super java.lang.reflect.Field>... predicates)
get all fields of giventype
, up the super class hierarchy, optionally filtered bypredicates
static java.util.Set<java.lang.reflect.Method>
getAllMethods(java.lang.Class<?> type, java.util.function.Predicate<? super java.lang.reflect.Method>... predicates)
get all methods of giventype
, up the super class hierarchy, optionally filtered bypredicates
static java.util.Set<java.lang.Class<?>>
getAllSuperTypes(java.lang.Class<?> type, java.util.function.Predicate<? super java.lang.Class<?>>... predicates)
get all super types of giventype
, including, optionally filtered bypredicates
static <T extends java.lang.reflect.AnnotatedElement>
java.util.Set<java.lang.annotation.Annotation>getAnnotations(T type, java.util.function.Predicate<java.lang.annotation.Annotation>... predicates)
get annotations of giventype
, optionally honorInherited, optionally filtered bypredicates
static java.util.Set<java.lang.reflect.Constructor>
getConstructors(java.lang.Class<?> t, java.util.function.Predicate<? super java.lang.reflect.Constructor>... predicates)
get constructors of giventype
, optionally filtered bypredicates
static java.util.Set<java.lang.reflect.Field>
getFields(java.lang.Class<?> type, java.util.function.Predicate<? super java.lang.reflect.Field>... predicates)
get fields of giventype
, optionally filtered bypredicates
static java.util.Set<java.lang.reflect.Method>
getMethods(java.lang.Class<?> t, java.util.function.Predicate<? super java.lang.reflect.Method>... predicates)
get methods of giventype
, optionally filtered bypredicates
static java.util.Set<java.lang.Class<?>>
getSuperTypes(java.lang.Class<?> type)
get the immediate supertype and interfaces of the giventype
static java.lang.Object
invoke(java.lang.reflect.Method method, java.lang.Object obj, java.lang.Object... args)
invoke the givenmethod
withargs
, return either the result or an exception if occurredstatic java.lang.annotation.Annotation
toAnnotation(java.util.Map<java.lang.String,java.lang.Object> map)
create new annotation proxy with member values from the givenmap
static <T extends java.lang.annotation.Annotation>
TtoAnnotation(java.util.Map<java.lang.String,java.lang.Object> map, java.lang.Class<T> annotationType)
create new annotation proxy with member values from the givenmap
and member values from the givenmap
static java.util.Map<java.lang.String,java.lang.Object>
toMap(java.lang.annotation.Annotation annotation)
mapannotation
to hash map of member values recursivelystatic java.util.Map<java.lang.String,java.lang.Object>
toMap(java.lang.annotation.Annotation annotation, java.lang.reflect.AnnotatedElement element)
mapannotation
andannotatedElement
to hash map of member values-
Methods inherited from class org.reflections.util.ReflectionUtilsPredicates
isAssignable, withAnnotation, withAnnotation, withAnnotations, withAnnotations, withAnyParameterAnnotation, withAnyParameterAnnotation, withClassModifier, withInterface, withModifier, withName, withNamePrefix, withParameters, withParametersAssignableFrom, withParametersAssignableTo, withParametersCount, withPattern, withPrefix, withPublic, withReturnType, withReturnTypeAssignableFrom, withStatic, withType, withTypeAssignableTo
-
-
-
-
Field Detail
-
objectMethodNames
private static final java.util.List<java.lang.String> objectMethodNames
-
notObjectMethod
public static final java.util.function.Predicate<java.lang.reflect.Method> notObjectMethod
predicate to filter outObject
methods
-
SuperClass
public static final UtilQueryBuilder<java.lang.Class<?>,java.lang.Class<?>> SuperClass
query super classget(SuperClass.of(element)) -> Set<Class<?>>
see also
SuperTypes
,Interfaces
-
Interfaces
public static final UtilQueryBuilder<java.lang.Class<?>,java.lang.Class<?>> Interfaces
query interfacesget(Interfaces.of(element)) -> Set<Class<?>>
-
SuperTypes
public static final UtilQueryBuilder<java.lang.Class<?>,java.lang.Class<?>> SuperTypes
query super classes and interfaces including elementget(SuperTypes.of(element)) -> Set<Class<?>>
-
Annotations
public static final UtilQueryBuilder<java.lang.reflect.AnnotatedElement,java.lang.annotation.Annotation> Annotations
query annotationsget(Annotation.of(element)) -> Set<Annotation>
-
AnnotationTypes
public static final UtilQueryBuilder<java.lang.reflect.AnnotatedElement,java.lang.Class<? extends java.lang.annotation.Annotation>> AnnotationTypes
query annotation typesget(AnnotationTypes.of(element)) -> Set<Class<? extends Annotation>>
-
Methods
public static final UtilQueryBuilder<java.lang.Class<?>,java.lang.reflect.Method> Methods
query methodsget(Methods.of(type)) -> Set<Method>
-
Constructors
public static final UtilQueryBuilder<java.lang.Class<?>,java.lang.reflect.Constructor> Constructors
query constructorsget(Constructors.of(type)) -> Set<Constructor>
-
Fields
public static final UtilQueryBuilder<java.lang.Class<?>,java.lang.reflect.Field> Fields
query fieldsget(Fields.of(type)) -> Set<Field>
-
Resources
public static final UtilQueryBuilder<java.lang.String,java.net.URL> Resources
query url resources usingClassLoader.getResources(java.lang.String)
get(Resources.with(name)) -> Set<URL>
-
-
Method Detail
-
get
public static <C,T> java.util.Set<T> get(QueryFunction<C,T> function)
-
get
public static <T> java.util.Set<T> get(QueryFunction<Store,T> queryFunction, java.util.function.Predicate<? super T>... predicates)
-
extendType
public static <T extends java.lang.reflect.AnnotatedElement> UtilQueryBuilder<java.lang.reflect.AnnotatedElement,T> extendType()
-
getAllAnnotations
public static <T extends java.lang.reflect.AnnotatedElement> java.util.Set<java.lang.annotation.Annotation> getAllAnnotations(T type, java.util.function.Predicate<java.lang.annotation.Annotation>... predicates)
get all annotations of giventype
, up the super class hierarchy, optionally filtered bypredicates
marked for removal, use instead
get(Annotations.of())
-
getAllSuperTypes
public static java.util.Set<java.lang.Class<?>> getAllSuperTypes(java.lang.Class<?> type, java.util.function.Predicate<? super java.lang.Class<?>>... predicates)
get all super types of giventype
, including, optionally filtered bypredicates
-
getSuperTypes
public static java.util.Set<java.lang.Class<?>> getSuperTypes(java.lang.Class<?> type)
get the immediate supertype and interfaces of the giventype
marked for removal, use instead
get(SuperTypes.get())
-
getAllMethods
public static java.util.Set<java.lang.reflect.Method> getAllMethods(java.lang.Class<?> type, java.util.function.Predicate<? super java.lang.reflect.Method>... predicates)
get all methods of giventype
, up the super class hierarchy, optionally filtered bypredicates
marked for removal, use instead
get(Methods.of())
-
getMethods
public static java.util.Set<java.lang.reflect.Method> getMethods(java.lang.Class<?> t, java.util.function.Predicate<? super java.lang.reflect.Method>... predicates)
get methods of giventype
, optionally filtered bypredicates
marked for removal, use instead
get(Methods.get())
-
getAllConstructors
public static java.util.Set<java.lang.reflect.Constructor> getAllConstructors(java.lang.Class<?> type, java.util.function.Predicate<? super java.lang.reflect.Constructor>... predicates)
get all constructors of giventype
, up the super class hierarchy, optionally filtered bypredicates
marked for removal, use instead
get(Constructors.of())
-
getConstructors
public static java.util.Set<java.lang.reflect.Constructor> getConstructors(java.lang.Class<?> t, java.util.function.Predicate<? super java.lang.reflect.Constructor>... predicates)
get constructors of giventype
, optionally filtered bypredicates
marked for removal, use instead
get(Constructors.get())
-
getAllFields
public static java.util.Set<java.lang.reflect.Field> getAllFields(java.lang.Class<?> type, java.util.function.Predicate<? super java.lang.reflect.Field>... predicates)
get all fields of giventype
, up the super class hierarchy, optionally filtered bypredicates
marked for removal, use instead
get(Fields.of())
-
getFields
public static java.util.Set<java.lang.reflect.Field> getFields(java.lang.Class<?> type, java.util.function.Predicate<? super java.lang.reflect.Field>... predicates)
get fields of giventype
, optionally filtered bypredicates
marked for removal, use instead
get(Fields.get())
-
getAnnotations
public static <T extends java.lang.reflect.AnnotatedElement> java.util.Set<java.lang.annotation.Annotation> getAnnotations(T type, java.util.function.Predicate<java.lang.annotation.Annotation>... predicates)
get annotations of giventype
, optionally honorInherited, optionally filtered bypredicates
marked for removal, use instead
get(Annotations.get())
-
toMap
public static java.util.Map<java.lang.String,java.lang.Object> toMap(java.lang.annotation.Annotation annotation)
mapannotation
to hash map of member values recursivelyAnnotations.of(type).map(ReflectionUtils::toMap)
-
toMap
public static java.util.Map<java.lang.String,java.lang.Object> toMap(java.lang.annotation.Annotation annotation, java.lang.reflect.AnnotatedElement element)
mapannotation
andannotatedElement
to hash map of member valuesAnnotations.of(type).map(a -> toMap(type, a))
-
toAnnotation
public static java.lang.annotation.Annotation toAnnotation(java.util.Map<java.lang.String,java.lang.Object> map)
create new annotation proxy with member values from the givenmap
toAnnotation(Map.of("annotationType", annotationType, "value", ""))
-
toAnnotation
public static <T extends java.lang.annotation.Annotation> T toAnnotation(java.util.Map<java.lang.String,java.lang.Object> map, java.lang.Class<T> annotationType)
create new annotation proxy with member values from the givenmap
and member values from the givenmap
toAnnotation(Map.of("value", ""), annotationType)
-
invoke
public static java.lang.Object invoke(java.lang.reflect.Method method, java.lang.Object obj, java.lang.Object... args)
invoke the givenmethod
withargs
, return either the result or an exception if occurred
-
-