Spec-Zone.ru › OpenJDK 27

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

java.lang.Object
java.lang.Enum<NestingKind>
javax.lang.model.element.NestingKind
Все реализуемые интерфейсы:
Serializable, Comparable<NestingKind>, Constable
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

Краткое описание вложенных классов

Вложенные классы и интерфейсы, объявленные в классе Enum

Enum.EnumDesc<E>
Модификатор и тип Класс Описание
static final class  Enum.EnumDesc<E extends Enum<E>>
Номинальный дескриптор для константы enum.

Краткое описание констант перечисления

Константа перечисления Описание
ANONYMOUS
Класс без имени.
LOCAL
Именованный класс или интерфейс, объявленный внутри конструкции, отличной от класса или интерфейса.
MEMBER
Класс или интерфейс, являющийся именованным членом другого класса или интерфейса.
TOP_LEVEL
Класс или интерфейс верхнего уровня, не содержащийся в другом классе или интерфейсе.

Краткое описание методов

Модификатор и тип Метод Описание
boolean isNested()
Соответствует ли эта константа вложенному элементу типа?
static NestingKind valueOf(String name)
Возвращает константу перечисления этого класса с указанным именем.
static NestingKind[] values()
Возвращает массив, содержащий константы этого класса-перечисления в порядке их объявления.

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

clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
Модификатор и тип Метод Описание
protected final Object clone()
Выбрасывает CloneNotSupportedException.
final int compareTo(NestingKind o)
Сравнивает это перечисление с указанным объектом, определяя порядок.
final Optional<Enum.EnumDesc<NestingKind>> describeConstable()
Возвращает дескриптор перечисления EnumDesc для этого экземпляра, если его можно создать, или пустой Optional, если создать его нельзя.
final boolean equals(Object other)
Возвращает true, если указанный объект равен этой константе перечисления.
protected final void finalize()
Устарело, планируется удаление: этот элемент API может быть удалён в будущей версии.
Финализация помечена как устаревшая и планируется к удалению.
final Class<NestingKind> getDeclaringClass()
Возвращает объект Class, соответствующий типу перечисления этой константы перечисления.
final int hashCode()
Возвращает хеш-код этой константы перечисления.
final String name()
Возвращает имя этой константы перечисления в точности так, как оно объявлено в объявлении перечисления.
final int ordinal()
Возвращает порядковый номер этой константы перечисления (её позицию в объявлении перечисления, где первой константе присваивается порядковый номер 0).
String toString()
Возвращает имя этой константы перечисления, указанное в объявлении.
static <T extends Enum<T>>
T
valueOf(Class<T> enumClass, String name)
Возвращает константу указанного класса-перечисления с указанным именем.

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

getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать, пока он не будет пробуждён, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать, пока он не будет пробуждён, обычно посредством уведомления или прерывания, либо пока не истечёт определённое время.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать, пока он не будет пробуждён, обычно посредством уведомления или прерывания, либо пока не истечёт определённое время.

Подробное описание констант перечисления

TOP_LEVEL

public static final NestingKind TOP_LEVEL
Класс или интерфейс верхнего уровня, не содержащийся в другом классе или интерфейсе.

MEMBER

public static final NestingKind MEMBER
Класс или интерфейс, являющийся именованным членом другого класса или интерфейса.
См. Спецификацию языка Java:
8.5 Объявления классов и интерфейсов-членов

LOCAL

public static final NestingKind LOCAL
Именованный класс или интерфейс, объявленный внутри конструкции, отличной от класса или интерфейса.
См. Спецификацию языка Java:
14.3 Объявления локальных классов и интерфейсов

ANONYMOUS

public static final NestingKind ANONYMOUS
Класс без имени.
См. Спецификацию языка Java:
15.9.5 Объявления анонимных классов

Подробное описание методов

values

public static NestingKind[] values()
Возвращает массив, содержащий константы этого класса-перечисления в порядке их объявления.
Возвращает:
массив, содержащий константы этого класса-перечисления в порядке их объявления

valueOf

public static NestingKind valueOf(String name)
Возвращает константу перечисления этого класса с указанным именем. Строка должна точно совпадать с идентификатором, использованным для объявления константы перечисления в этом классе. (Лишние пробельные символы не допускаются.)
Параметры:
name — имя возвращаемой константы перечисления.
Возвращает:
константу перечисления с указанным именем
Выбрасывает:
IllegalArgumentException — если в этом классе-перечислении нет константы с указанным именем
NullPointerException — если аргумент равен null

isNested

public boolean isNested()
Соответствует ли эта константа вложенному элементу типа? Вложенный элемент типа — это любой элемент, не являющийся элементом верхнего уровня. Точнее, внутренний элемент типа — это любой вложенный элемент типа, который не является статическим.
Возвращает:
является ли константа вложенной
См. Спецификацию языка Java:
14.3 Объявления локальных классов и интерфейсов

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API