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