枚舉類型的使用

很少用到枚舉類型,今天看到別人用這個類型實現數據庫中無意義的標誌如1,2,3和特定意義的業務狀態綁定,覺得這樣用很好很合適。故研究了一下枚舉的使用,做個記錄。

1、枚舉最簡單的使用:

enum Signal {  
    GREEN, YELLOW, RED  
}  
public class TrafficLight {  
    Signal color = Signal.RED;  
    public void change() {  
        switch (color) {  
        case RED:  
            color = Signal.GREEN;  
            break;  
        case YELLOW:  
            color = Signal.RED;  
            break;  
        case GREEN:  
            color = Signal.YELLOW;  
            break;  
        }  
    }  
}  

2、在枚舉類型中添加複雜的實例序列和方法:

public enum Color {  
    RED("紅色", 1), GREEN("綠色", 2), BLANK("白色", 3), YELLO("黃色", 4);  
    // 成員變量  
    private String name;  
    private int index;  
    // 構造方法  
    private Color(String name, int index) {  
        this.name = name;  
        this.index = index;  
    }  
    // 普通方法  
    public static String getName(int index) {  
        for (Color c : Color.values()) {  
            if (c.getIndex() == index) {  
                return c.name;  
            }  
        }  
        return null;  
    }  
    // get set 方法  
    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;  
    }  
}  

3、枚舉類enum的values()方法:

在上例中可以猜測到,Color.values()得到的數一個數組,爲更簡明的闡述該方法的返回結果,參照如下代碼:

public enum EnumDemoFirst {
 
	RED(1,"hongse"),GREEN(2,"lvse"),YELLOW(3,"huangse");
 
	private int code;
	private String msg;
	
 
	private EnumDemoFirst(int ordinal, String name) {
		this.code = ordinal;
		this.msg = name;
	}
	public int getCode() {
		return code;
	}
	public void setCode(int code) {
		this.code = code;
	}
	public String getMsg() {
		return msg;
	}
	public void setMsg(String msg) {
		this.msg = msg;
	}
	
	
}

測試方法如下:

public class EnumTest {
 
	public static void main(String[] args) {
		EnumDemoFirst[] values = EnumDemoFirst.values();
		for (EnumDemoFirst enumDemoFirst : values) {
			System.out.println(enumDemoFirst + "--" + enumDemoFirst.getCode() + "--" + enumDemoFirst.getMsg());
			System.out.println("=============");
		}
	}
}

用法尚未總結全,待補充

參考:https://blog.csdn.net/kdc18333608478/article/details/72845587

https://blog.csdn.net/qq_27093465/article/details/52180865

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章