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,ConstructorsandFields.Set<Class<?>> supertypes = get(SuperTypes.of(type)) Set<Annotation> annotations = get(Annotations.of(type))generally, apply
get(QueryFunction)onQueryFunctioncreated 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>Annotationsquery annotationsstatic UtilQueryBuilder<java.lang.reflect.AnnotatedElement,java.lang.Class<? extends java.lang.annotation.Annotation>>AnnotationTypesquery annotation typesstatic UtilQueryBuilder<java.lang.Class<?>,java.lang.reflect.Constructor>Constructorsquery constructorsstatic UtilQueryBuilder<java.lang.Class<?>,java.lang.reflect.Field>Fieldsquery fieldsstatic UtilQueryBuilder<java.lang.Class<?>,java.lang.Class<?>>Interfacesquery interfacesstatic UtilQueryBuilder<java.lang.Class<?>,java.lang.reflect.Method>Methodsquery methodsstatic java.util.function.Predicate<java.lang.reflect.Method>notObjectMethodpredicate to filter outObjectmethodsprivate static java.util.List<java.lang.String>objectMethodNamesstatic UtilQueryBuilder<java.lang.String,java.net.URL>Resourcesquery url resources usingClassLoader.getResources(java.lang.String)static UtilQueryBuilder<java.lang.Class<?>,java.lang.Class<?>>SuperClassquery super classstatic UtilQueryBuilder<java.lang.Class<?>,java.lang.Class<?>>SuperTypesquery 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 applyingQueryFunctionstatic <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 bypredicatesstatic 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 bypredicatesstatic 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 bypredicatesstatic 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 bypredicatesstatic 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 bypredicatesstatic <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 bypredicatesstatic 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 bypredicatesstatic 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 bypredicatesstatic 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 bypredicatesstatic java.util.Set<java.lang.Class<?>>getSuperTypes(java.lang.Class<?> type)get the immediate supertype and interfaces of the giventypestatic java.lang.Objectinvoke(java.lang.reflect.Method method, java.lang.Object obj, java.lang.Object... args)invoke the givenmethodwithargs, return either the result or an exception if occurredstatic java.lang.annotation.AnnotationtoAnnotation(java.util.Map<java.lang.String,java.lang.Object> map)create new annotation proxy with member values from the givenmapstatic <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 givenmapand member values from the givenmapstatic java.util.Map<java.lang.String,java.lang.Object>toMap(java.lang.annotation.Annotation annotation)mapannotationto 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)mapannotationandannotatedElementto 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 outObjectmethods
-
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 bypredicatesmarked 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 giventypemarked 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 bypredicatesmarked 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 bypredicatesmarked 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 bypredicatesmarked 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 bypredicatesmarked 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 bypredicatesmarked 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 bypredicatesmarked 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 bypredicatesmarked 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)
mapannotationto 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)mapannotationandannotatedElementto 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 givenmaptoAnnotation(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 givenmapand member values from the givenmaptoAnnotation(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 givenmethodwithargs, return either the result or an exception if occurred
-
-