枚举类型的使用

很少用到枚举类型,今天看到别人用这个类型实现数据库中无意义的标志如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

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