Перечисление 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>
Краткое описание констант перечисления
| Константа перечисления | Описание |
|---|---|
ANONYMOUS |
Класс без имени. |
LOCAL |
Именованный класс или интерфейс, объявленный внутри конструкции, отличной от класса или интерфейса. |
MEMBER |
Класс или интерфейс, являющийся именованным членом другого класса или интерфейса. |
TOP_LEVEL |
Класс или интерфейс верхнего уровня, не содержащийся в другом классе или интерфейсе. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
isNested() |
Соответствует ли эта константа вложенному элементу типа? |
static NestingKind |
valueOf |
Возвращает константу перечисления этого класса с указанным именем. |
static NestingKind[] |
values() |
Возвращает массив, содержащий константы этого класса-перечисления в порядке их объявления. |
Подробное описание констант перечисления
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 Объявления локальных классов и интерфейсов
© 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.compiler/javax/lang/model/element/NestingKind.html