これは後ろを何が起こるかであるなどのパブリックstaticフィールドとなり、効果的に同じことを砂糖で、許可されていないNULL値のようなものの世話をしますシーン:
E:\workspace>type Coffee.java
public enum Coffee {
BIG,
SMALL
}
E:\workspace>javap Coffee
Compiled from "Coffee.java"
public final class Coffee extends java.lang.Enum<Coffee> {
public static final Coffee BIG;
public static final Coffee SMALL;
public static Coffee[] values();
public static Coffee valueOf(java.lang.String);
static {};
}
あなたはBIG
とSMALL
があなたの列挙型では、本質的に静的フィールドで見ることができるように。
JLSもこの部分を明確にする:列挙型のEは、列挙型から継承メンバーに加えて
を、それぞれの は、名前の列挙型定数を宣言したN、列挙型は暗黙的に を持っていますこれらのフィールドは、対応する列挙定数 と同じ順番で宣言されているとみなされ、静的フィールドは明示的に が列挙型で宣言される前に宣言されていると見なされます。このような各フィールドは、対応する定数enum に初期化されます。
これはあなたの質問を明確にします。
enum Coffee {
BIG,
SMALL
}
で