Java中的枚举

Java 5.0引入了枚举,枚举限制变量只能是预先设定好的值。使用枚举可以减少代码中的bug。

枚举中有2个重要的方法:

  • name() : 返回枚举的名字,比如下例中的SMA LL
  • ordinal() : 返回枚举的下标,默认是从0开始的。


例如,我们为果汁店设计一个程序,它将限制果汁为小杯、中杯、大杯。这就意味着它不允许顾客点除了这三种尺寸外的果汁。

实例:

class FreshJuice {
   enum FreshJuiceSize{ SMALL, MEDUIM, LARGE }
   FreshJuiceSize size;
}

public class FreshJuiceTest {
   public static void main(String args[]){
      FreshJuice juice = new FreshJuice();
      juice.size = FreshJuice. FreshJuiceSize.MEDUIM ;
   }
}

注意:枚举可以单独声明或者声明在类里面。方法、变量、构造函数也可以在枚举中定义。

/**
 * <ul>
 *     账号类型
 * </ul>
 *
 * @author : kame
 * @date: 2018/11/7 5:45 PM
 */
public enum AccountTypeEnum {
    UN(0, "未知"),
    AC(1, "帐号"),
    EMAIL(2, "邮箱"),
    PHONE(3, "手机号");
    private Integer key; 
    private String description;

    AccountTypeEnum(Integer key, String description) {
        this.description = description;
        this.key = key;
    }

    public String getDescription() {
        return description;
    }

    public Integer getKey() {
        return key;
    }

    /**
     * 根据输入的key,返回对应的枚举
     * @param key 输入的key 
     * @return
     */
    public static AccountTypeEnum getByKey(Integer key){
        for(AccountTypeEnum typeEnum : values()){
            if(key.equals(typeEnum.getKey())){
                return typeEnum;
            }
        }
        return UN;
    }


}

还可以通过 this.values() 来获得所有的枚举(这个相当于是static的方法)。
public static void main(String[] args) {
    System.out.println("name() -> " + UN.name());
    System.out.println("ordinal() -> " + UN.ordinal());
}

输出结果:
name() -> UN
ordinal() -> 0
腾讯云推出云产品限时特惠抢购活动:2C2G云服务器7.9元/月起
本文链接:https://www.jhelp.net/p/w4i2z3mZZ6zMOzWg (转载请保留)。
关注下面的标签,发现更多相似文章