我知道在Java中一個enum
常量是隱含的static final
變量。但enum
類可以有一個實例變量say大小。所以每個enum
常量都會有一個'size'的副本。 這是什麼等效的Java代碼?我的意思是「似乎」靜態enum
常量是使用非靜態的實例變量,這是不可能正常?java如何支持java枚舉常量的實例變量?
enum Members{
A(1),B(2),C(3); // I have 3 enum constants here
private int size;
Members (int size) {
//System.out.println("Initializing var with size = "+size);
}
}
等效代碼我知道到目前爲止:
public final class Member extends Enums<Members> {
public static final Members A;
// ...
// What happened to size? How do A,B,C get a copy of size?
}
編輯:要重申我question- 我感興趣的由編譯器執行的場景背後。我已經知道如何使用枚舉。我正在尋找編譯器的功能? (例如,如果我簡單地寫A,編譯器將其翻譯爲「公共靜態最終成員A」。我想知道編譯器如何給每個A,B,C一個大小的副本。
不要混淆變量和引用與對象。 – 2014-10-12 14:51:14