enum FruitEnum { APPLE(1), ORANGE(2); // 調用構造函數來構造枚舉項 private int value = 0; private FruitEnum(int value) { // 必須是private的,不然編譯錯誤 this.value = value; } public static FruitEnum valueOf(int value) { // 手寫的從int到enum的轉換函數 switch (value) { case 1: return APPLE; case 2: return ORANGE; default: return null; } } public int value() { return this.value; } } public static void main(String[] args) { System.out.println(FruitEnum.APPLE.value()); // 1 System.out.println(FruitEnum.ORANGE.value()); // 2 System.out.println(FruitEnum.valueOf(1)); // FruitEnum.APPLE System.out.println(FruitEnum.valueOf(2)); // FruitEnum.ORANGE }
枚舉項的值從0開始遞增可使用ordinal取枚舉項在整個枚舉中的位置(0開始相似數組下標)數組
enum MyEnum{ FIRST_ELEMENT, SECOND_ELEMENT, } public static void main(String[] args) { System.out.println(MyEnum.FIRST_ELEMENT.ordinal()); // 0 System.out.println(MyEnum.SECOND_ELEMENT.ordinal()); // 1 System.out.println(MyEnum.values()[0]); // MyEnum.FIRST_ELEMENT System.out.println(MyEnum.values()[1]); // MyEnum.SECOND_ELEMENT }