类 MergedAnnotationPredicates
- java.lang.Object
- org.springframework.core.annotation.MergedAnnotationPredicates
public abstract class MergedAnnotationPredicates extends Object
Predicate implementations that provide various test operations forMergedAnnotations
.- 从以下版本开始:
- 5.2
- 作者:
- Phillip Webb
方法概要
所有方法 静态方法 具体方法 修饰符和类型 方法 说明 static <A extends Annotation>
Predicate<MergedAnnotation<A>>firstRunOf(Function<? super MergedAnnotation<A>,?> valueExtractor)
Create a new stateful, single usePredicate
that matches only the first run of an extracted value.static <A extends Annotation>
Predicate<MergedAnnotation<? extends A>>typeIn(Class<?>... types)
Create a newPredicate
that evaluates totrue
if the merged annotation type is contained in the specified array.static <A extends Annotation>
Predicate<MergedAnnotation<? extends A>>typeIn(String... typeNames)
Create a newPredicate
that evaluates totrue
if the name of the merged annotation type is contained in the specified array.static <A extends Annotation>
Predicate<MergedAnnotation<? extends A>>typeIn(Collection<?> types)
Create a newPredicate
that evaluates totrue
if the merged annotation type is contained in the specified collection.static <A extends Annotation,K>
Predicate<MergedAnnotation<A>>unique(Function<? super MergedAnnotation<A>,K> keyExtractor)
Create a new stateful, single usePredicate
that matches annotations that are unique based on the extracted key.
方法详细资料
typeIn
public static <A extends Annotation> Predicate<MergedAnnotation<? extends A>> typeIn(String... typeNames)
Create a newPredicate
that evaluates totrue
if the name of the merged annotation type is contained in the specified array.- 类型参数:
A
- the annotation type- 参数:
typeNames
- the names that should be matched- 返回:
- a
Predicate
to test the annotation type
typeIn
public static <A extends Annotation> Predicate<MergedAnnotation<? extends A>> typeIn(Class<?>... types)
Create a newPredicate
that evaluates totrue
if the merged annotation type is contained in the specified array.- 类型参数:
A
- the annotation type- 参数:
types
- the types that should be matched- 返回:
- a
Predicate
to test the annotation type
typeIn
public static <A extends Annotation> Predicate<MergedAnnotation<? extends A>> typeIn(Collection<?> types)
Create a newPredicate
that evaluates totrue
if the merged annotation type is contained in the specified collection.- 类型参数:
A
- the annotation type- 参数:
types
- the type names or classes that should be matched- 返回:
- a
Predicate
to test the annotation type
firstRunOf
public static <A extends Annotation> Predicate<MergedAnnotation<A>> firstRunOf(Function<? super MergedAnnotation<A>,?> valueExtractor)
Create a new stateful, single usePredicate
that matches only the first run of an extracted value. For example,MergedAnnotationPredicates.firstRunOf(MergedAnnotation::distance)
will match the first annotation, and any subsequent runs that have the same distance.NOTE: This predicate only matches the first run. Once the extracted value changes, the predicate always returns
false
. For example, if you have a set of annotations with distances[1, 1, 2, 1]
then only the first two will match.- 参数:
valueExtractor
- function used to extract the value to check- 返回:
- a
Predicate
that matches the first run of the extracted values
unique
public static <A extends Annotation,K> Predicate<MergedAnnotation<A>> unique(Function<? super MergedAnnotation<A>,K> keyExtractor)
Create a new stateful, single usePredicate
that matches annotations that are unique based on the extracted key. For exampleMergedAnnotationPredicates.unique(MergedAnnotation::getType)
will match the first time a unique type is encountered.- 参数:
keyExtractor
- function used to extract the key used to test for uniqueness- 返回:
- a
Predicate
that matches a unique annotation based on the extracted key