Here is a Enum class:
public enum Season
{
Spring,
Summer,
Autumn,
Winter
}
If we anti-compile it, the source code will be
public final class Season extends Enum
{
public static final Season Spring;
public static final Season Summer;
public static final Season Autumn;
public static final Season Winter;
private static final Season $VALUES[];
public static Season[] values()
{
return (Season[])$VALUES.clone();
}
public static Season valueOf(String s)
{
return (Season)Enum.valueOf(Season, s);
}
private Season(String s, int i)
{
super(s, i);
}
static
{
Spring = new Season("Spring", 0);
Summer = new Season("Summer", 1);
Autumn = new Season("Autumn", 2);
Winter = new Season("Winter", 3);
$VALUES = (new Season[] {
Spring, Summer, Autumn, Winter
});
}
}
Don't try to compile the anti-compiled code, due to it can not be compiled at all:
The type XXX may not subclass Enum explicitly
public enum Season
{
Spring,
Summer,
Autumn,
Winter
}
If we anti-compile it, the source code will be
public final class Season extends Enum
{
public static final Season Spring;
public static final Season Summer;
public static final Season Autumn;
public static final Season Winter;
private static final Season $VALUES[];
public static Season[] values()
{
return (Season[])$VALUES.clone();
}
public static Season valueOf(String s)
{
return (Season)Enum.valueOf(Season, s);
}
private Season(String s, int i)
{
super(s, i);
}
static
{
Spring = new Season("Spring", 0);
Summer = new Season("Summer", 1);
Autumn = new Season("Autumn", 2);
Winter = new Season("Winter", 3);
$VALUES = (new Season[] {
Spring, Summer, Autumn, Winter
});
}
}
Don't try to compile the anti-compiled code, due to it can not be compiled at all:
The type XXX may not subclass Enum explicitly