Enumeration Type Usage

    In actual programming, there are often such "data sets" whose values ​​are stable in the program, and the elements in the "data set" are limited.

    For example, seven data elements from Monday to Sunday form a "data set" for one week, and four data elements for spring, summer, autumn and winter form a "data set" for four seasons.

How to better use these "data sets" in java? So enumerations come in handy, the following code details the usage of enumerations.

 

1. Color enumeration

package com.meiju;

/**
 * Simple application, color
 */
public enum ColorEnum {
	blue, wite, red, green, yellow;
	
	private final static String cloe = "blue";
    public static ColorEnum getSeason() {
        if ("blue".equals(cloe))
            return blue;
        else
            return wite;
    }
}

    

package com.test;

import com.meiju.ColorEnum;

public class ColorEnumTest {
	public static void main(String[] args) {
		System.out.println("颜色:" + ColorEnum.wite);
		System.out.println("Color: " + ColorEnum.red);
	}
}

    Output result:

         Color: wite

         Color: red

 

2. Gender enumeration

package com.meiju;

/**
 * Gender, implements an enumeration with a constructor
 */
public enum GenderEnum {
	//Assignment through parentheses, and must have a parameter constructor and a property and method, otherwise the compilation will fail
    //Assignment must be assigned or not assigned, part of the assignment cannot be assigned and part of the assignment cannot be assigned; if the assignment is not assigned, the constructor cannot be written, and the assignment compilation is also wrong
    MAN("MAN"), WOMEN("WOMEN");
    
    public final String value;

    //The constructor can only be private by default, thus ensuring that the constructor can only be used internally
    GenderEnum(String value) {
        this.value = value;
    }
    
    public String getValue() {
        return value;
    }
}

   

package com.test;

import com.meiju.GenderEnum;

public class GenderEnumTest {
	public static void main(String[] args) {
		System.out.println("Gender: " + GenderEnum.MAN);
		System.out.println("性别:" + GenderEnum.MAN.getValue());
	}
}

   Output result:

        Gender: MAN

        Gender: MAN

 

3. Admin enumeration

package com.meiju;

import java.util.ArrayList;
import java.util.List;

public enum NameEnum {
	//enumerate
	XMMCODE("XMMCODE", "Xiong Moumou"), LMMCODE("LMMCODE", "Li Moumou"), ZMMCODE("ZMMCODE", "Zhang Moumou");
	
	//The class and value of the enumeration
	private String key;
    private String value;
    
    private NameEnum(String key, String value) {
        this.key = key;
        this.value = value;
    }

    public static NameEnum getEnum(String key) {
        for (NameEnum type: NameEnum.values ​​()) {
            if (type.key.equals(key)) {
                return type;
            }
        }
        return null;
    }

    public static List<NameEnum> getEnumList() {
        List<NameEnum> enumList = new ArrayList<NameEnum>();

        for (NameEnum e: NameEnum.values ​​()) {
            enumList.add(e);
        }
        return enumList;
    }

    public String getKey() {
        return key;
    }

    public String getValue() {
        return value;
    }
}

    

package com.test;

import com.meiju.NameEnum;

public class NameEnumTest {
	public static void main(String[] args) {
		System.out.println("Admin key: " + NameEnum.XMMCODE);
		System.out.println("Admin key: " + NameEnum.XMMCODE.getKey());
		System.out.println("Administrator name: " + NameEnum.XMMCODE.getValue());
	}
}

    Output result:

         Admin key: XMMCODE

         Admin key: XMMCODE

         Administrator name: Xiong Moumou

 

4. Order status enumeration

package com.meiju;

/**
 * Order status, implements enum with abstract methods
 */
public enum OrderStateEnum {
	//Cancelled
	CANCEL {public String getName() {return "Canceled";}},
	//to be reviewed
	WAITCONFIRM {public String getName() {return "to be reviewed";}},
	//waiting for payment
	WAITPAYMENT {public String getName() {return "Waiting for payment";}},
	// is dispatching
	ADMEASUREPRODUCT {public String getName() {return "Distributing";}},
	//Wait for delivery
	WAITDELIVER {public String getName() {return "Waiting to ship";}},
	//Shipped
	DELIVERED {public String getName() {return "Delivered";}},
	//received
	RECEIVED {public String getName() {return "Received";}};

	public abstract String getName();
}

    

package com.test;

import com.meiju.OrderStateEnum;

public class OrderStateEnumTest {
	public static void main(String[] args) {
		System.out.println("订单状态:" + OrderStateEnum.CANCEL);
		System.out.println("订单状态:" + OrderStateEnum.CANCEL.getName());
	}
}

    输出结果:

        订单状态:CANCEL

        订单状态:已取消

 

5、索引枚举

package com.meiju;

/**
 * 索引
 */
public enum SerialEnum {
	//位数,中文解说,code,开始值
	SERIAL_NUMBER(12, "流水号", "SERIAL_NUMBER", 100000000000L), 
    TEST_ID(12, "测试序列", "TEST_ID", 100000000000L),	
	TEST_INDEX(10, "测试索引", "TEST_INDEX", 1L);

	private Integer serialEnumLength;
	private String  SerialEnumName;
	private String  SerialEnumCode;
	private Long    startEnumSn;

	SerialEnum(Integer serialEnumLength, String SerialEnumName, String SerialEnumCode, Long startEnumSn) {
		this.SerialEnumCode = SerialEnumCode;
		this.serialEnumLength = serialEnumLength;
		this.SerialEnumName = SerialEnumName;
		this.startEnumSn = startEnumSn;
	}

	public Integer getSerialEnumLength() {
		return serialEnumLength;
	}

	public void setSerialEnumLength(Integer serialEnumLength) {
		this.serialEnumLength = serialEnumLength;
	}

	public String getSerialEnumName() {
		return SerialEnumName;
	}

	public void setSerialEnumName(String serialEnumName) {
		SerialEnumName = serialEnumName;
	}

	public String getSerialEnumCode() {
		return SerialEnumCode;
	}

	public void setSerialEnumCode(String serialEnumCode) {
		SerialEnumCode = serialEnumCode;
	}

	public Long getStartEnumSn() {
		return startEnumSn;
	}

	public void setStartEnumSn(Long startEnumSn) {
		this.startEnumSn = startEnumSn;
	}
}

    

package com.test;

import com.meiju.SerialEnum;

public class SerialEnumTest {
	public static void main(String[] args) {
		System.out.println("索引code:" + SerialEnum.SERIAL_NUMBER.getSerialEnumCode());
		System.out.println("索引中文解释:" + SerialEnum.SERIAL_NUMBER.getSerialEnumName());
		System.out.println("索引开始值:" + SerialEnum.SERIAL_NUMBER.getStartEnumSn());
		System.out.println("索引长度:" + SerialEnum.SERIAL_NUMBER.getSerialEnumLength());
	}
}

    输出结果:

        索引code:SERIAL_NUMBER

        索引中文解释:流水号

        索引开始值:100000000000

        索引长度:12

 

99、总结

     

package com.test;

import com.meiju.ColorEnum;
import com.meiju.GenderEnum;
import com.meiju.OrderStateEnum;

public class Enumtest {
	public static void main(String[] args) {
		//枚举是一种类型,用于定义变量,以限制变量的赋值;赋值时通过“枚举名.值”取得枚举中的值
        ColorEnum colorEnum = ColorEnum.blue;
        switch (colorEnum) {
	        case red:
	            System.out.println("color is red");
	            break;
	        case green:
	            System.out.println("color is green");
	            break;
	        case yellow:
	            System.out.println("color is yellow");
	            break;
	        case blue:
	            System.out.println("color is blue");
	            break;
			default :
				break;
        }
        
        //遍历枚举
        System.out.println("遍历ColorEnum枚举中的值");
        for(ColorEnum color : ColorEnum.values()){
            System.out.println(color);
        }
        
        //获取枚举的个数
        System.out.println("ColorEnum枚举中的值有"+ColorEnum.values().length+"个");
        
        //获取枚举的索引位置,默认从0开始
        System.out.println(ColorEnum.red.ordinal());//0
        System.out.println(ColorEnum.green.ordinal());//1
        System.out.println(ColorEnum.yellow.ordinal());//2
        System.out.println(ColorEnum.blue.ordinal());//3
        
        //枚举默认实现了java.lang.Comparable接口
        System.out.println(ColorEnum.red.compareTo(ColorEnum.green));//-1
        
        System.err.println("颜色为" + ColorEnum.getSeason());
        
        System.out.println("===========");
        for(GenderEnum gender : GenderEnum.values()){
            System.out.println(gender.value);
        }
       
        System.out.println("===========");
        for(OrderStateEnum order : OrderStateEnum.values()){
            System.out.println(order.getName());
        }
	}
}

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326503907&siteId=291194637