【java中枚举的使用】

在JDK1.5 之前,我们定义常量都是: public static fianl… 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

enum  枚举名 {
      枚举体(常量列表)
}

所有的枚举类型隐性地继承自 java.lang.Enum。枚举实质上还是类!而每个被枚举的成员实质就是一个枚举类型的实例,他们默认都是public static final修饰的。可以直接通过枚举类型名使用它们。

package com.bjsxt;

/**
 * Created by Administrator on 2019/3/1.
 */
public enum SeasonEnum {
    SPRING,SUMMER,AUTUMN,WINTER
}


class MyTest{
    public static void main(String[] args){
        SeasonEnum spring=SeasonEnum.SPRING;    //每个枚举成员实际上是一个枚举实例
        System.out.print(SeasonEnum.SPRING);
    }
}

我们可以给枚举中添加属性和方法

import org.apache.commons.lang.StringUtils;

public enum MessageEnum {

    SYSTEM("1", "系统消息"),
    WEILAN_FOR_HUOZHU("2", "围栏给货主发消息"),
    WEILAN_FOR_CHEZHU("3", "围栏给车主发消息"),
    ORDER_STATE("4", "运单状态消息"),
    USER_FLEET("5", "用户车队推送信息"),
    VOICE_NOTICE("6", "语音播报通知"),
    ACCOUNT_DISABLE("7", "账户禁用通知");

    private String type;    //类型
    private String desc;    //描述

    private MessageEnum(String type, String desc) {
        this.type = type;
        this.desc = desc;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public static MessageEnum getByName(String name){
        for (MessageEnum messageEnum : values()) {
            if(StringUtils.equalsIgnoreCase(messageEnum.name(),name)){
                return messageEnum;
            }
        }
        return null;
    }
}

class MyTestTwo {
    public static void main(String[] args) {
        System.out.println(MessageEnum.SYSTEM.getType());
        System.out.println(MessageEnum.SYSTEM.getDesc());
        System.out.println(MessageEnum.getByName("SYSTEM"));
        System.out.println(MessageEnum.SYSTEM.name());


    }



}

你可能感兴趣的:(java,spring,开发语言)