Please see this link. Regarding Enums, Mr. Bloch says
Java’s enum types are classes that export one instance for each enumeration constant via a public static final field.
I read the Enum Class documentation but there was no public static final field, then how does the above statement hold true. Please explain. Thanks
Create a Test.java
file and write Test enum
:
public enum Test {
Hello
}
compile this class: javac Test.java
,and use javap Test
to get the compiled class:
public final class Test extends java.lang.Enum{
public static final Test Hello;
public static Test[] values();
public static Test valueOf(java.lang.String);
static {};
}
and you can see the Test
class extends from Enum
and it has the public static final Hello
field.