文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。
枚举的基本使用代码案例
package 枚举相关.基本使用.代码;
/**
* @author zyz
* @version 1.0
* @data 2023/10/16 16:33
* @Description: 枚举的基本使用
*/
import java.util.HashMap;
import java.util.Map;
/**
* 指令下发
* @author Lenovo
*/
public enum CMNDType {
/**
* 开机
*/
Start("0"),
/**
* 关机
*/
ShutDown("1"),
/**
* 重启设备
*/
Reboot("2"),
/**
* 未知指令
*/
UnKnow("999")
;
private String code;
CMNDType(String code) {
this.code = code;
}
private static Map<String, CMNDType> map = new HashMap<>();
/**
* values()
* 该方法可以将枚举类型成员以数组的形式返回
* 枚举类型名称.values()
*/
static {
CMNDType [] ens = CMNDType.values();
for(CMNDType en : ens){
map.put(en.code, en);
}
}
/**
* 获取指令类型 通过key - value 的形式
* @param code
* @return
*/
public static CMNDType get (String code){
if(map.containsKey(code)){
return map.get(code);
}
return UnKnow;
}
@Override
public String toString(){
return this.code;
}
}
测试代码
package 枚举相关.基本使用.代码;
import java.util.Scanner;
/**
* @author zyz
* @version 1.0
* @data 2023/10/16 16:44
* @Description:
*/
public class Mytest {
public static void main(String[] args) {
Boolean flag = false;
//创建对象,获取键盘输入的值做准备
Scanner src = new Scanner(System.in);
do{
System.out.println("请输入指令 【0~3】");
//
/**
* nextInt();获取键盘输入的整数
* next();一直到读取到输入的有效字符后结束输入,会自动忽略空白信息(空格);
* nextLine();可以获取所有信息,包括空白信息。
*/
int code = src.nextInt();
/**
* 通过枚举得到指令类型
*/
CMNDType CMMD = CMNDType.get(String.valueOf(code));
switch (CMMD){
case Start: //开启设备
System.out.println("开启设备");
break;
case ShutDown: //关闭设备
System.out.println("关闭设备");
break;
case Reboot: //重启设备
System.out.println("重启设备");
break;
default:
System.out.println("设备指令不正确");
break;
}
System.out.println("是否继续执行操作 ?【y是 / n 否】");
String operate = src.next();
if(operate.equals("y")|| operate.equals("Y")){
flag = true;
}else if(operate.equals("n") || operate.equals("N")){
flag = false;
}else{
flag = true;
}
}while (flag);
}
}