如果您声明这样的枚举:
enum Suit {SPADES, HEARTS, CLUBS, DIAMONDS}
Java 编译器将为您综合生成以下类:
final class Suit extends java.lang.Enum<Suit> {
public static final Suit SPADES;
public static final Suit HEARTS;
public static final Suit CLUBS;
public static final Suit DIAMONDS;
private static final Suit[] $VALUES;
public static Suit[] values();
public static Suit valueOf(java.lang.String);
private Suit();
}
除了已经在其中定义的那些静态字段之外,无意创建此类的其他实例(正如您可以从其私有构造函数中推断的那样),但最重要的是,正如接受的答案中提到的那样,内部类不能具有静态成员(JLS §8.1.3. Inner Classes and Enclosure Instances),并且由于枚举合成类确实如此,因此它作为内部类是不可接受的。