对于类中定义的枚举,例如
class OuterClass {
public enum Method {
GET,
PUT,
POST,
DELETE;
}
}
枚举是静态嵌套类(https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html)吗?从用于引用它的语法来判断似乎就是这种情况。或者它是一个非静态嵌套类(内部类)?
答案 0 :(得分:7)
枚举声明指定一个新的枚举类型,一种特殊的类类型。
所以看起来来自Oracle的一句话就是枚举是类。
如果你在另一个类中声明一个枚举,那么是的,它是一个内部类。并且枚举总是静态的,所以是,当在另一个类中声明它时,将枚举称为静态内部类(或嵌套类)是公平的。
答案 1 :(得分:4)
枚举声明指定一个新的枚举类型,一种特殊的类类型。
[...]
嵌套枚举类型隐式
.then
。允许声明嵌套枚举类型以冗余指定static
修饰符。 [...]
答案 2 :(得分:3)
enum
声明生成的字节码如下:
// compiled from: OuterClass.java
public final static enum INNERCLASS ...
是的,在这种情况下,enum
是静态嵌套类 - JLS.