Перечисление NestingKind
- java.lang.Object
-
- java.lang.Enum<NestingKind>
-
- javax.lang.model.element.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