enum 的使用方法(java)


作者QQ:1095737364    QQ群:123300273     歡迎加入!

 

enum很像特殊的class,實際上enum聲明定義的類型就是一個類。而這些類都是類庫中Enum類的子類(java.lang.Enum<E>)。它們繼承了這個Enum中的許多有用的方法。我們對代碼編譯之后發現,編譯器將enum類型單獨編譯成了一個字節碼文件:Color.class

下面是一個簡單的示例:

Color.java:自定義的枚舉及其使用方法,根據情況可以進行增刪!
public enum Color {
    RED("紅色", 1), GREEN("綠色", 2), BLANK("白色", 3), YELLO("黃色", 4);
    // 成員變量:枚舉RED("紅色", 1)括號中的屬性來定義
    private String name;
    private int index;
    // 構造方法:傳遞所有的屬性
    private Color(String name, int index) {
        this.name = name;
        this.index = index;
    }
    // 1.通過編號得到名字
    public static String getNameByIndex(int index) {
        for (Color c : Color.values()) {
            if (c.getIndex() == index) {
                return c.name;
            }
        }
        return null;
    }
    // 2.通過編號得到枚舉
    public static Color getColorByIndex(int index) {
        for (Color c : Color.values()) {
            if (c.getIndex() == index) {
                return c;
            }
        }
        return null;
    }
    // 3.通過名字得到編號
    public static int getIndexByName(String name) {
        for (Color c : Color.values()) {
            if (c.getName() == name) {
                return c.index;
            }
        }
        return -1;
    }
    // 通過名字得到枚舉
    public static Color getColorByName(String name) {
        for (Color c : Color.values()) {
            if (c.getName() == name) {
                return c;
            }
        }
        return null;
    }
    //得到枚舉的名字
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    //得到枚舉的編號
    public int getIndex() {
        return index;
    }
    public void setIndex(int index) {
        this.index = index;
    }
    // 覆蓋方法:設置自定義枚舉輸出(一般不用)
//    @Override
//    public String toString() {
//        return this.index + "_" + this.name;
//    }
}

 

下面是一個測試用例:(自己import Java包)

EnumTest.java

public class EnumTest {
    public enum Size{ SMALL, MEDIUM, LARGE, EXTRA_LARGE };//常量枚舉(簡單實用)
    public static void main(String[] args) {
        System.out.println(Size.SMALL);
        System.out.println(Color.BLANK);
        System.out.println(Color.getColorByIndex(1));
        System.out.println(Color.getColorByName("白色"));
        System.out.println(Color.getIndexByName("白色"));
        System.out.println(Color.getNameByIndex(1));
        // EnumSet的使用
        EnumSet<Color> weekSet = EnumSet.allOf(Color.class);
        for (Color color : weekSet) {
            System.out.println(color);
        }
        // EnumMap的使用
        EnumMap<Color, String> weekMap = new EnumMap(Color.class);
        weekMap.put(Color.GREEN, "綠");
        weekMap.put(Color.BLANK, "白");
        for (Iterator<Map.Entry<Color, String>> iter = weekMap.entrySet().iterator(); iter.hasNext();) {
            Map.Entry<Color, String> entry = iter.next();
            System.out.println(entry.getKey().name() + ":" + entry.getValue());
        }
    }
}

 

謝謝打賞...

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM