Note that it is possible additional nesting kinds will be added in future versions of the platform.
Example: The classes below are annotated with their nesting kind.
import java.lang.annotation.*; import static java.lang.annotation.RetentionPolicy.*; import javax.lang.model.element.*; import static javax.lang.model.element.NestingKind.*; @Nesting(TOP_LEVEL) public class NestingExamples { @Nesting(MEMBER) static class MemberClass1{} @Nesting(MEMBER) class MemberClass2{} public static void main(String... argv) { @Nesting(LOCAL) class LocalClass{}; Class<?>[] classes = { NestingExamples.class, MemberClass1.class, MemberClass2.class, LocalClass.class }; for(Class<?> clazz : classes) { System.out.format("%s is %s%n", clazz.getName(), clazz.getAnnotation(Nesting.class).value()); } } } @Retention(RUNTIME) @interface Nesting { NestingKind value(); }
Modifier and Type | Field and Description |
---|---|
public static final NestingKind | ANONYMOUS
A class without a name. |
public static final NestingKind | LOCAL
A named class or interface declared within a construct other than a class or interface. |
public static final NestingKind | MEMBER
A class or interface that is a named member of another class or interface. |
public static final NestingKind | TOP_LEVEL
A top-level class or interface, not contained within another class or interface. |
Access | Constructor and Description |
---|---|
private |
Modifier and Type | Method and Description |
---|---|
public boolean | Returns: whether or not the constant is nestedDoes this constant correspond to a nested type element? |
public static NestingKind | |
public static NestingKind[] |
ANONYMOUS | back to summary |
---|---|
public static final NestingKind ANONYMOUS A class without a name.
|
LOCAL | back to summary |
---|---|
public static final NestingKind LOCAL A named class or interface declared within a construct other than a class or interface.
|
MEMBER | back to summary |
---|---|
public static final NestingKind MEMBER A class or interface that is a named member of another class or interface.
|
TOP_LEVEL | back to summary |
---|---|
public static final NestingKind TOP_LEVEL A top-level class or interface, not contained within another class or interface. |
NestingKind | back to summary |
---|---|
private NestingKind() |
isNested | back to summary |
---|---|
public boolean isNested() Does this constant correspond to a nested type element? A nested type element is any that is not top-level. More specifically, an inner type element is any nested type element that is not static.
|
valueOf | back to summary |
---|---|
public static NestingKind valueOf(String name) |
values | back to summary |
---|---|
public static NestingKind[] values() |