- 所有已实现的接口:
-
Serializable,Comparable<NestingKind>,Constable
类型元素的嵌套类型。类型元素有四种类型:顶层、成员、局部和匿名。这里使用嵌套类型这个非标准术语来表示这种分类。
请注意,未来版本的平台可能会添加其他嵌套类型。
示例: 下面的类都带有它们的嵌套类型注解。
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();
}
- 自 JDK 版本:
- 1.6
-
Nested Class Summary
Nested classes/interfaces declared in class java.lang.Enum
Enum.EnumDesc<E extends Enum<E>> -
Enum Constant Summary
Enum Constants -
Method Summary
Modifier and TypeMethodDescriptionbooleanisNested()此常量是否对应于嵌套类型元素?static NestingKind返回具有指定名称的此类的枚举常量。static NestingKind[]values()返回按声明顺序排列的此枚举类的常量数组。
-
Enum Constant Details
-
TOP_LEVEL
顶层类或接口,不包含在另一个类或接口中。 -
MEMBER
另一个类或接口的具有名称的成员类或接口。- 参见 Java 语言规范:
-
8.5 成员类和接口声明
-
LOCAL
在除类或接口之外的结构中声明的具有名称的类或接口。- 参见 Java 语言规范:
-
14.3 局部类声明
-
ANONYMOUS
没有名称的类。- 参见 Java 语言规范:
-
15.9.5 匿名类声明
-
-
Method Details
-
values
返回按声明顺序排列的此枚举类的常量数组。- 返回:
- 按声明顺序排列的此枚举类的常量数组
-
valueOf
返回具有指定名称的此类的枚举常量。字符串必须与此类中用于声明枚举常量的标识符完全匹配。(不允许存在多余的空白字符。)- 参数:
-
name- 要返回的枚举常量的名称。 - 返回:
- 具有指定名称的枚举常量
- 抛出:
-
IllegalArgumentException- 如果此枚举类没有具有指定名称的常量 -
NullPointerException- 如果参数为 null
-
isNested
public boolean isNested()此常量是否对应于嵌套类型元素?嵌套类型元素是任何不是顶层的类型元素。更具体地说,内部类型元素是任何不是静态的嵌套类型元素。- 返回:
- 常量是否为嵌套的
- 参见 Java 语言规范:
-
14.3 局部类声明
-