一.什么是枚举
我们学习过单例模式,即一个类只有一个实例。而枚举其实就是多例,一个类有多个实例,但实例的个数不是无穷的,是有限个数的。例如word文档的对齐方式有几种:左对齐、居中对齐、右对齐。开车的方向有几种:前、后、左、右!我们称呼枚举类中实例为枚举项!一般一个枚举类的枚举项的个数不应该太多,如果一个枚举类有30个枚举项就太多了!
二.定义枚举类型
注意,定义枚举类的关键字是enum,而不是Enum,所有关键字都是小写的!
其中FRONT、BEHIND、LEFT、RIGHT都是枚举项,它们都是本类的实例,本类一共就只有四个实例对象。
在定义枚举项时,多个枚举项之间使用逗号分隔,最后一个枚举项后需要给出分号!但如果枚举类中只有枚举项(没有构造器、方法、实例变量),那么可以省略分号!建议不要省略分号!
不能使用new来创建枚举类的对象,因为枚举类中的实例就是类中的枚举项,所以在类外只能使用类名.枚举项。
枚举类内容定义:
示例一:
public enum RadioFaultEnum {
/**
*
* example—— ERRORE: 17.02
*/
ERRORE1702("ERRORE",17.02 ),
ERRORE1703("ERRORE",17.03 ),
ERRORE1704("ERRORE",17.04 ),
ERRORE1705("ERRORE",17.05 ),
ERRORE1706("ERRORE",17.06 ),
ERRORE1707("ERRORE",17.07 ),
ERRORE1708("ERRORE",17.08 ),
ERRORE1709("ERRORE",17.09 ),
ERRORE1710("ERRORE",17.10 ),
ERRORE1711("ERRORE",17.11 ),
ERRORE1712("ERRORE",17.12 ),
ERRORE1713("ERRORE",17.13 ),
ERRORE1714("ERRORE",17.14 ),
ERRORE1715("ERRORE",17.15 ),
ERRORE1716("ERRORE",17.16 ),
ERRORE1717("ERRORE",17.17 ),
ERRORE1718("ERRORE",17.18 ),
ERRORE1719("ERRORE",17.19 ),
ERRORE1720("ERRORE",17.20 ),
ERRORE1721("ERRORE",17.21 ),
ERRORE1722("ERRORE",17.22 ),
ERRORE1723("ERRORE",17.23 ),
ERRORE1724("ERRORE",17.24 ),
ERRORE1725("ERRORE",17.25 ),
ERRORE1726("ERRORE",17.26 ),
ERRORE1727("ERRORE",17.27 ),
ERRORE1728("ERRORE",17.28 ),
ERRORE1729("ERRORE",17.29 ),
ERRORE1730("ERRORE",17.30 ),
ERRORE1731("ERRORE",17.31 ),
ERRORE1732("ERRORE",17.32 ),
ERRORE1733("ERRORE",17.33 );
private final String ErroreType;
/**
* 报警消息中的故障码
*/
private final double code;
RadioFaultEnum(String ErroreType, double code) {
this.ErroreType = ErroreType;
this.code = code;
}
public String getErroreType() {
return ErroreType;
}
public double getCode() {
return code;
}
@Override
public String toString() {
return this.ErroreType+":"+code;
}
}
枚举类方法调用:
//遍历枚举中的RIM故障
for (RIMFaultEnum n:RIMFaultEnum.values()) {
//如果JRU报警数据中的故障码与RIM枚举类中的故障码相等,则存在此类故障,将RIM故障数+1
if (offlineJruAlarmData.getFaultCode() == String.valueOf(n.getCode())){
existRIMFault ++;
}
//只要存在1条RIM故障以上,就证明有报警数据,将JRU数据标志位,置为有报警数据2,并结束循环比对,否则继续遍历
if (existRIMFault > 0 ){
existJruData = 2;
break;
}else{
continue;
}
示例二:
内容定义:
调用方法:
--------------------------------------------------------以下无正文------------------------------------------------------
注:仅供学习,记录问题和参考,共勉!
参考文章:
1、枚举(enum)_ChampionDragon的博客-CSDN博客_枚举
2、枚举ENUM的tostring() valueof()name()和values()用法_bingguang1993的博客-CSDN博客_枚举的name和value
3、Java 枚举(1): 详解7种常见的用法_CodingALife的博客-CSDN博客_java 枚举