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() | |