Перечисление NestingKind

Все реализованные интерфейсы:
Serializable, Comparable<NestingKind>
public enum NestingKind
extends Enum<NestingKind>

Тип вложенности элемента типа. Элементы типов бывают четырёх видов: верхнего уровня, члена, локального и анонимного. Тип вложенности — это нестандартный термин, используемый здесь для обозначения этой классификации.

Обратите внимание, что в будущих версиях платформы могут быть добавлены дополнительные типы вложенности.

Пример: Классы ниже проанонтированы с их типом вложенности.

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();
}
С момента:
1.6

Постоянные значения перечисления

Постоянное значение перечисления Описание
ANONYMOUS

Тип без имени.

LOCAL

Именованный тип, объявленный внутри конструкции, отличной от типа.

MEMBER

Тип, являющийся именованным членом другого типа.

TOP_LEVEL

Тип верхнего уровня, не содержащийся в другом типе.

Методы

Модификатор и тип Метод Описание
boolean isNested()

Соответствует ли эта константа элементу вложенного типа?

static NestingKind valueOf​(String name)

Возвращает константу перечисления этого типа с заданным именем.

static NestingKind[] values()

Возвращает массив, содержащий константы этого типа перечисления в порядке их объявления.

Методы, объявленные в классе java.lang.Enum

clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf

Методы, объявленные в классе java.lang.Object

getClass, notify, notifyAll, wait, wait, wait

Постоянные значения перечисления

TOP_LEVEL

public static final NestingKind TOP_LEVEL

Тип верхнего уровня, не содержащийся в другом типе.

MEMBER

public static final NestingKind MEMBER

Тип, являющийся именованным членом другого типа.

LOCAL

public static final NestingKind LOCAL

Именованный тип, объявленный внутри конструкции, отличной от типа.

ANONYMOUS

public static final NestingKind ANONYMOUS

Тип без имени.

Методы

values

public static NestingKind[] values()

Возвращает массив, содержащий константы этого типа перечисления в порядке их объявления. Этот метод может использоваться для перебора констант следующим образом:

for (NestingKind c : NestingKind.values())
    System.out.println(c);

Возвращает:
массив, содержащий константы этого типа перечисления в порядке их объявления

valueOf

public static NestingKind valueOf(String name)

Возвращает константу перечисления этого типа с заданным именем. Строка должна точно соответствовать идентификатору, используемому для объявления константы перечисления в этом типе. (Дополнительные символы пробелов недопустимы.)

Параметры:
name - имя возвращаемой константы перечисления.
Возвращает:
константу перечисления с заданным именем
Исключения:
IllegalArgumentException - если в этом типе перечисления нет константы с заданным именем
NullPointerException - если аргумент имеет значение null

isNested

public boolean isNested()

Соответствует ли эта константа элементу вложенного типа? Элемент вложенного типа — это любой, который не является верхнего уровня. Более конкретно, элемент вложенного типа — это любой вложенный элемент типа, который не является статическим.

Возвращает:
является ли константа вложенной

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.compiler/javax/lang/model/element/NestingKind.html

Spec-Zone .ru
спецификации, руководства, описания, API