Enum Class NestingKind

java.lang.Object
java.lang.Enum<NestingKind>
javax.lang.model.element.NestingKind
All Implemented Interfaces:
Serializable, Comparable<NestingKind>, Constable

public enum NestingKind extends Enum<NestingKind>
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();
 }
 

Since:
1.6