enums枚举 常用写法及调用
枚举是一个特殊的类,类一样可以用自己的变量、方法和构造函数,构造函数只能使用 private 访问修饰符
一、常用写法
package com.pd.shop.enums;
public enum DefaultStatusEnum {
/**
* 否;禁用
*/
NO(0, "否"),
/**
* 是;启用
*/
YES(1, "是"),
;
DefaultStatusEnum(Integer status, String desc) {
this.status = status;
this.desc = desc;
}
private Integer status;
private String desc;
public Integer getStatus() {
return status;
}
public String getDesc() {
return desc;
}
/**
* 获取枚举类型
*
* @param status
* @return DefaultStatusEnum
*/
public static DefaultStatusEnum getEnum(Integer status) {
DefaultStatusEnum[] statusEnums = values();
for (DefaultStatusEnum item : statusEnums) {
if (item.getStatus().equals(status)) {
return item;
}
}
return null;
}
}
枚举类中的方法values(), ordinal() 和 valueOf()
values() 返回枚举所有的值。
ordinal() 返回枚举常量的索引。
valueOf() 方法返回指定字符串值的枚举常量。
一、调用方法
//获取枚举
DefaultStatusEnum noEnum = DefaultStatusEnum.NO;
//获取索引
Integer index = noEnum.ordinal();
//获取枚举值
DefaultStatusEnum statusEnum = DefaultStatusEnum.valueOf("NO");
//获取枚举值
Integer status = DefaultStatusEnum.NO.getStatus();
//获取枚举值备注
String desc = DefaultStatusEnum.NO.getDesc();
//判断是否包含枚举
DefaultStatusEnum tempEnum = DefaultStatusEnum.getEnum(0);
if(tempEnum == null){
//TODO 不包含此枚举
}
//比较枚举值
if(noEnum.getStatus().equals(0)){
//TODO
}
//比较枚举类型
if(noEnum == DefaultStatusEnum.YES){
//TODO
}