接口 AnnotatedTypeMetadata
- 所有已知子接口:
AnnotationMetadata,MethodMetadata
- 所有已知实现类:
SimpleAnnotationMetadata,SimpleMethodMetadata,StandardAnnotationMetadata,StandardMethodMetadata
class
or method), in a form that does not necessarily require
class loading of the types being inspected. Note, however, that classes for
encountered annotations will be loaded.- 从以下版本开始:
- 4.0
- 作者:
- Juergen Hoeller, Mark Fisher, Mark Pollack, Chris Beams, Phillip Webb, Sam Brannen, Harry Yang
- 另请参阅:
-
方法概要
修饰符和类型方法说明default MultiValueMap<String,Object> getAllAnnotationAttributes(Class<? extends Annotation> annotationType) Retrieve all attributes of all annotations of the given type, if any (i.e. if defined on the underlying element, as direct annotation or meta-annotation).default MultiValueMap<String,Object> getAllAnnotationAttributes(Class<? extends Annotation> annotationType, boolean classValuesAsString) Retrieve all attributes of all annotations of the given type, if any (i.e. if defined on the underlying element, as direct annotation or meta-annotation).default MultiValueMap<String,Object> getAllAnnotationAttributes(String annotationName) Retrieve all attributes of all annotations of the given type, if any (i.e. if defined on the underlying element, as direct annotation or meta-annotation).default MultiValueMap<String,Object> getAllAnnotationAttributes(String annotationName, boolean classValuesAsString) Retrieve all attributes of all annotations of the given type, if any (i.e. if defined on the underlying element, as direct annotation or meta-annotation).default <A extends Annotation>
MergedAnnotation<A>getAnnotation(Class<A> annotationType) Get the nearest matching annotation or meta-annotation of the specified type, orMergedAnnotation.missing()if none is present.default <A extends Annotation>
MergedAnnotation<A>getAnnotation(String annotationType) Get the nearest matching annotation or meta-annotation of the specified type, orMergedAnnotation.missing()if none is present.getAnnotationAttributes(Class<? extends Annotation> annotationType) Retrieve the attributes of the annotation of the given type, if any (i.e. if defined on the underlying element, as direct annotation or meta-annotation).getAnnotationAttributes(Class<? extends Annotation> annotationType, boolean classValuesAsString) Retrieve the attributes of the annotation of the given type, if any (i.e. if defined on the underlying element, as direct annotation or meta-annotation).getAnnotationAttributes(String annotationName) Retrieve the attributes of the annotation of the given type, if any (i.e. if defined on the underlying element, as direct annotation or meta-annotation).getAnnotationAttributes(String annotationName, boolean classValuesAsString) Retrieve the attributes of the annotation of the given type, if any (i.e. if defined on the underlying element, as direct annotation or meta-annotation).Get annotation details based on the direct annotations and meta-annotations of the underlying element.Get the fully qualified class names of all annotation types that are present on the underlying class.default <A extends Annotation>
Set<MergedAnnotation<A>>getMergedRepeatableAnnotation(Class<A> annotationType, Class<? extends Annotation> containerType) Retrieve all repeatable annotations of the given type within the annotation hierarchy above the underlying element (as direct annotation or meta-annotation); and for each annotation found, merge that annotation's attributes with matching attributes from annotations in lower levels of the annotation hierarchy and store the results in an instance ofMergedAnnotation.default <A extends Annotation>
Set<MergedAnnotation<A>>getMergedRepeatableAnnotation(Class<A> annotationType, Class<? extends Annotation> containerType, boolean sortByReversedMetaDistance) Retrieve all repeatable annotations of the given type within the annotation hierarchy above the underlying element (as direct annotation or meta-annotation); and for each annotation found, merge that annotation's attributes with matching attributes from annotations in lower levels of the annotation hierarchy and store the results in an instance ofMergedAnnotation.default <A extends Annotation>
Set<MergedAnnotation<A>>getMergedRepeatableAnnotation(Class<A> annotationType, Class<? extends Annotation> containerType, boolean sortByReversedMetaDistance, Predicate<MergedAnnotation<? extends Annotation>> predicate) Retrieve all repeatable annotations of the given type within the annotation hierarchy above the underlying element (as direct annotation or meta-annotation); and for each annotation found, merge that annotation's attributes with matching attributes from annotations in lower levels of the annotation hierarchy and store the results in an instance ofMergedAnnotation.default Set<AnnotationAttributes>getMergedRepeatableAnnotationAttributes(Class<? extends Annotation> annotationType, Class<? extends Annotation> containerType, boolean classValuesAsString) Retrieve all repeatable annotations of the given type within the annotation hierarchy above the underlying element (as direct annotation or meta-annotation); and for each annotation found, merge that annotation's attributes with matching attributes from annotations in lower levels of the annotation hierarchy and store the results in an instance ofAnnotationAttributes.default Set<AnnotationAttributes>getMergedRepeatableAnnotationAttributes(Class<? extends Annotation> annotationType, Class<? extends Annotation> containerType, boolean classValuesAsString, boolean sortByReversedMetaDistance) Retrieve all repeatable annotations of the given type within the annotation hierarchy above the underlying element (as direct annotation or meta-annotation); and for each annotation found, merge that annotation's attributes with matching attributes from annotations in lower levels of the annotation hierarchy and store the results in an instance ofAnnotationAttributes.default Set<AnnotationAttributes>getMergedRepeatableAnnotationAttributes(Class<? extends Annotation> annotationType, Class<? extends Annotation> containerType, boolean classValuesAsString, boolean sortByReversedMetaDistance, Predicate<MergedAnnotation<? extends Annotation>> predicate) Retrieve all repeatable annotations of the given type within the annotation hierarchy above the underlying element (as direct annotation or meta-annotation); and for each annotation found, merge that annotation's attributes with matching attributes from annotations in lower levels of the annotation hierarchy and store the results in an instance ofAnnotationAttributes.getMetaAnnotationTypes(Class<? extends Annotation> annotationType) Get the fully qualified class names of all meta-annotation types that are present on the given annotation type on the underlying class.getMetaAnnotationTypes(String annotationName) Get the fully qualified class names of all meta-annotation types that are present on the given annotation type on the underlying class.default booleanhasAnnotation(Class<? extends Annotation> annotationType) Determine whether an annotation of the given type is present on the underlying class.default booleanhasAnnotation(String annotationName) Determine whether an annotation of the given type is present on the underlying class.default booleanhasMetaAnnotation(Class<? extends Annotation> metaAnnotationType) Determine whether the underlying class has an annotation that is itself annotated with the meta-annotation of the given type.default booleanhasMetaAnnotation(String metaAnnotationName) Determine whether the underlying class has an annotation that is itself annotated with the meta-annotation of the given type.default booleanisAnnotated(Class<? extends Annotation> annotationType) Determine whether the underlying element has an annotation or meta-annotation of the given type defined.default booleanisAnnotated(String annotationName) Determine whether the underlying element has an annotation or meta-annotation of the given type defined.private static Comparator<MergedAnnotation<Annotation>>private <A extends Annotation>
Stream<MergedAnnotation<Annotation>>stream(Class<A> annotationType, Class<? extends Annotation> containerType, boolean sortByReversedMetaDistance, Predicate<MergedAnnotation<? extends Annotation>> predicate)
-
方法详细资料
-
getAnnotations
MergedAnnotations getAnnotations()Get annotation details based on the direct annotations and meta-annotations of the underlying element.- 返回:
- merged annotations based on the direct annotations and meta-annotations
-
getAnnotation
Get the nearest matching annotation or meta-annotation of the specified type, orMergedAnnotation.missing()if none is present.- 参数:
annotationType- the annotation type to get- 返回:
- a
MergedAnnotationinstance
-
getAnnotation
Get the nearest matching annotation or meta-annotation of the specified type, orMergedAnnotation.missing()if none is present.- 参数:
annotationType- the fully qualified class name of the annotation type to get- 返回:
- a
MergedAnnotationinstance
-
getAnnotationTypes
Get the fully qualified class names of all annotation types that are present on the underlying class.- 返回:
- the annotation type names
-
getMetaAnnotationTypes
Get the fully qualified class names of all meta-annotation types that are present on the given annotation type on the underlying class.- 参数:
annotationType- the class of the meta-annotation type to look for- 返回:
- the meta-annotation type names, or an empty set if none found
-
getMetaAnnotationTypes
Get the fully qualified class names of all meta-annotation types that are present on the given annotation type on the underlying class.- 参数:
annotationName- the fully qualified class name of the annotation type to look for meta-annotations on- 返回:
- the meta-annotation type names, or an empty set if none found
-
hasAnnotation
Determine whether an annotation of the given type is present on the underlying class.- 参数:
annotationType- the class of the annotation type to look for- 返回:
trueif a matching annotation is present
-
hasAnnotation
Determine whether an annotation of the given type is present on the underlying class.- 参数:
annotationName- the fully qualified class name of the annotation type to look for- 返回:
trueif a matching annotation is present
-
hasMetaAnnotation
Determine whether the underlying class has an annotation that is itself annotated with the meta-annotation of the given type.- 参数:
metaAnnotationType- the class of the meta-annotation type to look for- 返回:
trueif a matching meta-annotation is present
-
hasMetaAnnotation
Determine whether the underlying class has an annotation that is itself annotated with the meta-annotation of the given type.- 参数:
metaAnnotationName- the fully qualified class name of the meta-annotation type to look for- 返回:
trueif a matching meta-annotation is present
-
isAnnotated
Determine whether the underlying element has an annotation or meta-annotation of the given type defined.If this method returns
true, thengetAnnotationAttributes(java.lang.Class<? extends java.lang.annotation.Annotation>)will return a non-null Map.- 参数:
annotationType- the class of the annotation type to look for- 返回:
- whether a matching annotation is defined
-
isAnnotated
Determine whether the underlying element has an annotation or meta-annotation of the given type defined.If this method returns
true, thengetAnnotationAttributes(java.lang.Class<? extends java.lang.annotation.Annotation>)will return a non-null Map.- 参数:
annotationName- the fully qualified class name of the annotation type to look for- 返回:
- whether a matching annotation is defined
-
getAnnotationAttributes
@Nullable default Map<String,Object> getAnnotationAttributes(Class<? extends Annotation> annotationType) Retrieve the attributes of the annotation of the given type, if any (i.e. if defined on the underlying element, as direct annotation or meta-annotation).@AliasForsemantics are fully supported, both within a single annotation and within annotation hierarchies.- 参数:
annotationType- the fully-qualified class of the annotation type to look for- 返回:
- a
Mapof attributes, with each annotation attribute name as map key (e.g. "location") and the attribute's value as map value; ornullif no matching annotation is found
-
getAnnotationAttributes
Retrieve the attributes of the annotation of the given type, if any (i.e. if defined on the underlying element, as direct annotation or meta-annotation).@AliasForsemantics are fully supported, both within a single annotation and within annotation hierarchies.- 参数:
annotationName- the fully-qualified class name of the annotation type to look for- 返回:
- a
Mapof attributes, with each annotation attribute name as map key (e.g. "location") and the attribute's value as map value; ornullif no matching annotation is found
-
getAnnotationAttributes
@Nullable default Map<String,Object> getAnnotationAttributes(Class<? extends Annotation> annotationType, boolean classValuesAsString) Retrieve the attributes of the annotation of the given type, if any (i.e. if defined on the underlying element, as direct annotation or meta-annotation).@AliasForsemantics are fully supported, both within a single annotation and within annotation hierarchies.- 参数:
annotationType- the fully-qualified class of the annotation type to look forclassValuesAsString- whether to convert class references to String class names for exposure as values in the returned Map, instead of Class references which might potentially have to be loaded first- 返回:
- a
Mapof attributes, with each annotation attribute name as map key (e.g. "location") and the attribute's value as map value; ornullif no matching annotation is found
-
getAnnotationAttributes
@Nullable default Map<String,Object> getAnnotationAttributes(String annotationName, boolean classValuesAsString) Retrieve the attributes of the annotation of the given type, if any (i.e. if defined on the underlying element, as direct annotation or meta-annotation).@AliasForsemantics are fully supported, both within a single annotation and within annotation hierarchies.- 参数:
annotationName- the fully-qualified class name of the annotation type to look forclassValuesAsString- whether to convert class references to String class names for exposure as values in the returned Map, instead of Class references which might potentially have to be loaded first- 返回:
- a
Mapof attributes, with each annotation attribute name as map key (e.g. "location") and the attribute's value as map value; ornullif no matching annotation is found
-
getAllAnnotationAttributes
@Nullable default MultiValueMap<String,Object> getAllAnnotationAttributes(Class<? extends Annotation> annotationType) Retrieve all attributes of all annotations of the given type, if any (i.e. if defined on the underlying element, as direct annotation or meta-annotation). Note that this variant does not take attribute overrides into account.- 参数:
annotationType- the class of the annotation type to look for- 返回:
- a MultiMap of attributes, with the attribute name as key (e.g. "value")
and a list of the defined attribute values as Map value. This return value will
be
nullif no matching annotation is defined. - 另请参阅:
-
getAllAnnotationAttributes
Retrieve all attributes of all annotations of the given type, if any (i.e. if defined on the underlying element, as direct annotation or meta-annotation). Note that this variant does not take attribute overrides into account.- 参数:
annotationName- the fully qualified class name of the annotation type to look for- 返回:
- a MultiMap of attributes, with the attribute name as key (e.g. "value")
and a list of the defined attribute values as Map value. This return value will
be
nullif no matching annotation is defined. - 另请参阅:
-
getAllAnnotationAttributes
@Nullable default MultiValueMap<String,Object> getAllAnnotationAttributes(Class<? extends Annotation> annotationType, boolean classValuesAsString) Retrieve all attributes of all annotations of the given type, if any (i.e. if defined on the underlying element, as direct annotation or meta-annotation). Note that this variant does not take attribute overrides into account.- 参数:
annotationType- the class of the annotation type to look forclassValuesAsString- whether to convert class references to String- 返回:
- a MultiMap of attributes, with the attribute name as key (e.g. "value")
and a list of the defined attribute values as Map value. This return value will
be
nullif no matching annotation is defined. - 另请参阅:
-
getAllAnnotationAttributes
@Nullable default MultiValueMap<String,Object> getAllAnnotationAttributes(String annotationName, boolean classValuesAsString) Retrieve all attributes of all annotations of the given type, if any (i.e. if defined on the underlying element, as direct annotation or meta-annotation). Note that this variant does not take attribute overrides into account.- 参数:
annotationName- the fully qualified class name of the annotation type to look forclassValuesAsString- whether to convert class references to String- 返回:
- a MultiMap of attributes, with the attribute name as key (e.g. "value")
and a list of the defined attribute values as Map value. This return value will
be
nullif no matching annotation is defined. - 另请参阅:
-
getMergedRepeatableAnnotationAttributes
default Set<AnnotationAttributes> getMergedRepeatableAnnotationAttributes(Class<? extends Annotation> annotationType, Class<? extends Annotation> containerType, boolean classValuesAsString) Retrieve all repeatable annotations of the given type within the annotation hierarchy above the underlying element (as direct annotation or meta-annotation); and for each annotation found, merge that annotation's attributes with matching attributes from annotations in lower levels of the annotation hierarchy and store the results in an instance ofAnnotationAttributes.@AliasForsemantics are fully supported, both within a single annotation and within annotation hierarchies.- 参数:
annotationType- the annotation type to findcontainerType- the type of the container that holds the annotationsclassValuesAsString- whether to convert class references toStringclass names for exposure as values in the returnedAnnotationAttributes, instead ofClassreferences which might potentially have to be loaded first- 返回:
- the set of all merged repeatable
AnnotationAttributesfound, or an empty set if none were found - 另请参阅:
-
getMergedRepeatableAnnotationAttributes
default Set<AnnotationAttributes> getMergedRepeatableAnnotationAttributes(Class<? extends Annotation> annotationType, Class<? extends Annotation> containerType, boolean classValuesAsString, boolean sortByReversedMetaDistance) Retrieve all repeatable annotations of the given type within the annotation hierarchy above the underlying element (as direct annotation or meta-annotation); and for each annotation found, merge that annotation's attributes with matching attributes from annotations in lower levels of the annotation hierarchy and store the results in an instance ofAnnotationAttributes.@AliasForsemantics are fully supported, both within a single annotation and within annotation hierarchies.If the
sortByReversedMetaDistanceflag is set totrue, the results will be sorted inreversedorder based on each annotation's meta distance, which effectively orders meta-annotations before annotations that are declared directly on the underlying element.- 参数:
annotationType- the annotation type to findcontainerType- the type of the container that holds the annotationsclassValuesAsString- whether to convert class references toStringclass names for exposure as values in the returnedAnnotationAttributes, instead ofClassreferences which might potentially have to be loaded firstsortByReversedMetaDistance-trueif the results should be sorted in reversed order based on each annotation's meta distance- 返回:
- the set of all merged repeatable
AnnotationAttributesfound, or an empty set if none were found - 另请参阅:
-
getMergedRepeatableAnnotationAttributes
default Set<AnnotationAttributes> getMergedRepeatableAnnotationAttributes(Class<? extends Annotation> annotationType, Class<? extends Annotation> containerType, boolean classValuesAsString, boolean sortByReversedMetaDistance, @Nullable Predicate<MergedAnnotation<? extends Annotation>> predicate) Retrieve all repeatable annotations of the given type within the annotation hierarchy above the underlying element (as direct annotation or meta-annotation); and for each annotation found, merge that annotation's attributes with matching attributes from annotations in lower levels of the annotation hierarchy and store the results in an instance ofAnnotationAttributes.@AliasForsemantics are fully supported, both within a single annotation and within annotation hierarchies.The supplied
Predicatewill be used to filter the results. For example, supplymergedAnnotation -> trueto include all annotations in the results; supplyMergedAnnotation::isDirectlyPresentto limit the results to directly declared annotations, etc.If the
sortByReversedMetaDistanceflag is set totrue, the results will be sorted inreversedorder based on each annotation's meta distance, which effectively orders meta-annotations before annotations that are declared directly on the underlying element.- 参数:
annotationType- the annotation type to findcontainerType- the type of the container that holds the annotationspredicate- aPredicateto apply to eachMergedAnnotationto determine if it should be included in the resultsclassValuesAsString- whether to convert class references toStringclass names for exposure as values in the returnedAnnotationAttributes, instead ofClassreferences which might potentially have to be loaded firstsortByReversedMetaDistance-trueif the results should be sorted in reversed order based on each annotation's meta distance- 返回:
- the set of all merged repeatable
AnnotationAttributesfound, or an empty set if none were found - 另请参阅:
-
getMergedRepeatableAnnotation
default <A extends Annotation> Set<MergedAnnotation<A>> getMergedRepeatableAnnotation(Class<A> annotationType, Class<? extends Annotation> containerType) Retrieve all repeatable annotations of the given type within the annotation hierarchy above the underlying element (as direct annotation or meta-annotation); and for each annotation found, merge that annotation's attributes with matching attributes from annotations in lower levels of the annotation hierarchy and store the results in an instance ofMergedAnnotation.@AliasForsemantics are fully supported, both within a single annotation and within annotation hierarchies.- 参数:
annotationType- the annotation type to findcontainerType- the type of the container that holds the annotations- 返回:
- the set of all merged repeatable
MergedAnnotationfound, or an empty set if none were found - 另请参阅:
-
getMergedRepeatableAnnotation
default <A extends Annotation> Set<MergedAnnotation<A>> getMergedRepeatableAnnotation(Class<A> annotationType, Class<? extends Annotation> containerType, boolean sortByReversedMetaDistance) Retrieve all repeatable annotations of the given type within the annotation hierarchy above the underlying element (as direct annotation or meta-annotation); and for each annotation found, merge that annotation's attributes with matching attributes from annotations in lower levels of the annotation hierarchy and store the results in an instance ofMergedAnnotation.@AliasForsemantics are fully supported, both within a single annotation and within annotation hierarchies.If the
sortByReversedMetaDistanceflag is set totrue, the results will be sorted inreversedorder based on each annotation's meta distance, which effectively orders meta-annotations before annotations that are declared directly on the underlying element.- 参数:
annotationType- the annotation type to findcontainerType- the type of the container that holds the annotationssortByReversedMetaDistance-trueif the results should be sorted in reversed order based on each annotation's meta distance- 返回:
- the set of all merged repeatable
MergedAnnotationfound, or an empty set if none were found - 另请参阅:
-
getMergedRepeatableAnnotation
default <A extends Annotation> Set<MergedAnnotation<A>> getMergedRepeatableAnnotation(Class<A> annotationType, Class<? extends Annotation> containerType, boolean sortByReversedMetaDistance, @Nullable Predicate<MergedAnnotation<? extends Annotation>> predicate) Retrieve all repeatable annotations of the given type within the annotation hierarchy above the underlying element (as direct annotation or meta-annotation); and for each annotation found, merge that annotation's attributes with matching attributes from annotations in lower levels of the annotation hierarchy and store the results in an instance ofMergedAnnotation.@AliasForsemantics are fully supported, both within a single annotation and within annotation hierarchies.If the
sortByReversedMetaDistanceflag is set totrue, the results will be sorted inreversedorder based on each annotation's meta distance, which effectively orders meta-annotations before annotations that are declared directly on the underlying element.- 参数:
annotationType- the annotation type to findcontainerType- the type of the container that holds the annotationssortByReversedMetaDistance-trueif the results should bepredicate- aPredicateto apply to eachMergedAnnotationto determine if it should be included in the results sorted in reversed order based on each annotation's meta distance- 返回:
- the set of all merged repeatable
MergedAnnotationfound, or an empty set if none were found - 另请参阅:
-
stream
private <A extends Annotation> Stream<MergedAnnotation<Annotation>> stream(Class<A> annotationType, Class<? extends Annotation> containerType, boolean sortByReversedMetaDistance, @Nullable Predicate<MergedAnnotation<? extends Annotation>> predicate) -
reversedMetaDistance
-