網頁

2019/9/18

Java 如何在列舉中定義靜態常數 how to define static constant variable in enum

在Java的Enum(列舉)中定義靜態成員常數(static constant)的方法如下。

如果要在Enum中定義靜態成員常數,也就是以static final修飾的靜態不可變的成員屬性,可在Enum中建立一個內部靜態類別,然後在該類別中定義靜態成員常數。


例如下面是一個列舉VipType,並在裡面建立一個內部靜態類別(Nested Static Class)LV,然後在LV中定義要建立的常數。

public enum VipType {
    
    VIP(LV.LV1),
    VVIP(LV.LV2),
    VVVIP(LV.LV3);
    
    private int level;
    
    
    private VipType(int level) {
        this.level = level;
    }
    
    public int getLevel() {
        return level;
    }
    
    /** 內部靜態類別 */
    private static final class LV {
        
        private static final int LV1 = 1; // 靜態常數
        private static final int LV2 = 2;
        private static final int LV3 = 3;
        
    }

}

執行以下測試。

System.out.println(VipType.VIP.getLevel());   // 1
System.out.println(VipType.VVIP.getLevel());  // 2
System.out.println(VipType.VVVIP.getLevel()); // 3


參考:

沒有留言:

張貼留言