| The nesting kind of a type element.
Type elements come in four varieties:
top-level, member, local, and anonymous.
Nesting kind is a non-standard term used here to denote this
classification.
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();
}
author: Joseph D. Darcy author: Scott Seligman author: Peter von der Ahé version: 1.9 07/05/05 since: 1.6 |