public static enum MergedAnnotations.SearchStrategy extends Enum<MergedAnnotations.SearchStrategy>
MergedAnnotations.from(AnnotatedElement, SearchStrategy) and
variants of that method.
Each strategy creates a different set of aggregates that will be
combined to create the final MergedAnnotations.
| Enum Constant and Description |
|---|
DIRECT
Find only directly declared annotations, without considering
@Inherited annotations and without searching
superclasses or implemented interfaces. |
INHERITED_ANNOTATIONS
Find all directly declared annotations as well as any
@Inherited superclass annotations. |
SUPERCLASS
Find all directly declared and superclass annotations.
|
TYPE_HIERARCHY
Perform a full search of the entire type hierarchy, including
superclasses and implemented interfaces.
|
TYPE_HIERARCHY_AND_ENCLOSING_CLASSES
Perform a full search of the entire type hierarchy on the source
and any enclosing classes.
|
| Modifier and Type | Method and Description |
|---|---|
static MergedAnnotations.SearchStrategy |
valueOf(String name)
Returns the enum constant of this type with the specified name.
|
static MergedAnnotations.SearchStrategy[] |
values()
Returns an array containing the constants of this enum type, in
the order they are declared.
|
public static final MergedAnnotations.SearchStrategy DIRECT
@Inherited annotations and without searching
superclasses or implemented interfaces.public static final MergedAnnotations.SearchStrategy INHERITED_ANNOTATIONS
@Inherited superclass annotations.
This strategy is only really useful when used with Class
types since the @Inherited annotation is ignored for
all other annotated elements.
This strategy does not search implemented interfaces.
public static final MergedAnnotations.SearchStrategy SUPERCLASS
This strategy is similar to INHERITED_ANNOTATIONS except
the annotations do not need to be meta-annotated with
@Inherited.
This strategy does not search implemented interfaces.
public static final MergedAnnotations.SearchStrategy TYPE_HIERARCHY
Superclass annotations do not need to be meta-annotated with
@Inherited.
public static final MergedAnnotations.SearchStrategy TYPE_HIERARCHY_AND_ENCLOSING_CLASSES
This strategy is similar to TYPE_HIERARCHY except that
enclosing classes are also
searched.
Superclass and enclosing class annotations do not need to be
meta-annotated with @Inherited.
When searching a Method source, this strategy is identical
to TYPE_HIERARCHY.
WARNING: This strategy searches recursively for
annotations on the enclosing class for any source type, regardless
whether the source type is an inner class, a static
nested class, or a nested interface. Thus, it may find more annotations
than you would expect.
public static MergedAnnotations.SearchStrategy[] values()
for (MergedAnnotations.SearchStrategy c : MergedAnnotations.SearchStrategy.values()) System.out.println(c);
public static MergedAnnotations.SearchStrategy valueOf(String name)
name - the name of the enum constant to be returned.IllegalArgumentException - if this enum type has no constant with the specified nameNullPointerException - if the argument is null