java中关于枚举的定义:
1、枚举是一种引用数据类型。
2、枚举类型怎么定义:
enum 枚举名 {
// 枚举值
}
3、什么时候用枚举?
结果只有两种情况的,建议使用boolean类型,或者使用0和1表示;
结果超过两种,并且还是可以一枚一枚列举出来的,建议使用枚举。
4、枚举里面的值可以看成常量,值是枚举类型。
名称全部大写,单词以“_”隔开。
各个枚举值之间用“,”隔开,最后一个枚举值后面逗号可有可无,最好还是不要写。
测试代码:
public class Test01 {
public static void main(String[] args) {
int month = 12;
Season season = getSeason(month);
System.out.println(season); // WINTER
//switch语句支持枚举,String,int
Season season1 = Season.SPRING;
switch (season1) {
//必须省略“Season.”
case SPRING:
System.out.println("春天"); break;
case SUMMER:
System.out.println("夏天"); break;
case AUTUMN:
System.out.println("秋天"); break;
case WINTER:
System.out.println("冬天"); break;
}
}
//写一个方法,能判断一个月份是哪个季节,123春,456夏,789秋,10,11,12冬
//只有4个季节,所以返回枚举类型Season
public static Season getSeason(int month) { //对传进来的数字要先前判断合法
if (month >= 1 && month <= 3) return Season.SPRING;
if (month >= 4 && month <= 6) return Season.SUMMER;
if (month >= 7 && month <= 9) return Season.AUTUMN;
return Season.WINTER;
}
}
//定义枚举,四季
enum Season {
SPRING,
SUMMER,
AUTUMN,
WINTER,
}
//定义枚举,星期
enum Weekday {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}
另附:实际开发中枚举的定义:
package com.pipi.apply.core.constant;
import com.pipi.parent.core.exception.MsgException;
import lombok.Getter;
import java.util.Objects;
/**
* <p>
* 描述:申请常量
* </p>
*
* @author pipizhen
* @since 2020/11/06
*/
public interface PromConstant {
/**
* 申请状态
*/
enum UnbindApplyTypeEnum {
AUDITING(1, "待处理"),
UNBIND(2, "已处理"),
INVALID(3, "无效");
@Getter
private Integer code;
@Getter
private String desc;
UnbindApplyTypeEnum(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
public static String valueOf(Integer code) {
if (code == null) return "";
for (UnbindApplyTypeEnum type : UnbindApplyTypeEnum.values()) {
if (Objects.equals(type.getCode(), code)) {
return type.getDesc();
}
}
return "";
}
}
}