java enum使用方法

直接上手吧,注释都写清楚了

编写枚举类

/**
 * 可以使用接口或类包裹枚举元素,使其可以统一调用入口
 */
public interface TestEnumIntfc {
    /**
     * 创建枚举对象
     */
    public enum TestEnum {

        //1.常规型定义枚举项
//    Enabled, Disabled

        //2.普通型定义枚举项
//    Enabled(1), Disabled(0);
//    private int value;
//    TestEnum(int value){
//        this.value = value;
//    }

        //3.复杂型定义枚举项
        //(枚举项参数构造方法提供的参数对应)
        Enabled(1, "启用"),
        Disabled(0, "禁用");
        //(使用私有变量存储值)
        private int value;
        private String text;
        //构造方法只能是private,通过构造为私有变量赋值
        TestEnum(int value, String text) {
            this.value = value;
            this.text = text;
        }
        //可以定义方法供外部调用,获取每一个属性的值(为枚举项提供方法)
        //TestEnum.Enabled.toInt()
        public int toInt() {
            return this.value;
        }
        public String toText() {
            return this.text;
        }
        //可以定义静态方法以便根据value获取text(为枚举类提供方法)
        //TestEnum.getText(1)
        public static String getText(int value) {
            for (TestEnum item : TestEnum.values()) {
                if (value == item.value) {
                    return item.text;
                }
            }
            return null;
        }
        //可以重写toString()方法实现自定义输出
        @Override
        public String toString() {
            return super.toString();
        }
    }
}

编写调用main()

public static void main(String[] arge) {
        //调用同toString()方法,输出:Enabled
        System.out.println(TestEnumIntfc.TestEnum.Enabled);
        //根据选定的枚举项,获取text,输出:启用
        System.out.println(TestEnumIntfc.TestEnum.Enabled.toText());
        //根据选定的枚举项,获取value,输出:1
        System.out.println(TestEnumIntfc.TestEnum.Enabled.toInt());
        //根据选定的枚举项,转换为字符串,输出:Enabled
        System.out.println(TestEnumIntfc.TestEnum.Enabled.toString());
        //根据选定枚举类及传入的value,返回该value对应的text,输出:启用
        System.out.println(TestEnumIntfc.TestEnum.getText(1));
        //获取该枚举类中的所有项的数组并循环
        for (TestEnumIntfc.TestEnum e : TestEnumIntfc.TestEnum.values()) {
            System.out.println(e.toText());
        }
    }

猜你喜欢

转载自www.cnblogs.com/taiyonghai/p/9296036.html