If you declared an enum like this:
enum Suit {SPADES, HEARTS, CLUBS, DIAMONDS}
The Java compiler would synthetically generate the following class for you:
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();
}
There is no intention to create other instances of this class other than those static fields already defined in it (as you could infer from its private constructor), but most importantly, and as mentioned in the accepted answer, a inner class cannot have static members (JLS §8.1.3. Inner Classes and Enclosing Instances), and since the enum synthetic class does, it makes it unacceptable as inner class.