由于我自己对Java枚举这块的理论知识匮乏,很难讲清接下来代码中涉及到的理论知识。我只能通过代码、运行结果来展示枚举的魅力所在。
1、 EnumTest实体类,定义枚举中各个参数的具体信息。
package com.example.demo.Enum;
public enum EnumTest {
ACTIVE("激活", 100),
INACTIVE("冻结", 101),
TEST("测试...", 102);
/* 描述 */
private String desc;
/* 枚举类 */
private int value;
public static EnumTest getEnum(int value) {
EnumTest resultEnum = null;
EnumTest[] enumArray = EnumTest.values();
for (int i = 0; i < enumArray.length; i++) {
if (enumArray[i].getValue() == value) {
resultEnum = enumArray[i];
break;
}
}
return resultEnum;
}
/**
* 测试函数 -- 应该不会用到,无意义。 2018/08/16
* @param desc
*/
private EnumTest(String desc) {
this.desc = desc;
}
/**
* 全参构造函数
* @param desc
* @param value
*/
private EnumTest(String desc, int value) {
this.desc = desc;
this.value = value;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
2、 对 EnumTest实体类的测试Main函数如下所示:
package com.example.demo.Enum;
public class EnumMain {
public static void main(String[] args) {
EnumTest et = null;
et = EnumTest.getEnum(101);
System.out.println("输出枚举类的值为:" + et + "\n"
+ "输出枚举类值的'desc'值为:" + et.getDesc() + "\n"
+ "输出枚举类值的'value'值为:" + et.getValue());
}
}
3、运行结果如下所示:
输出枚举类的值为:INACTIVE
输出枚举类值的'desc'值为:冻结
输出枚举类值的'value'值为:101
图一