Java枚举使用的基本案例

简介: 这篇文章是关于Java枚举的基本使用,通过一个指令下发的代码案例,展示了如何定义枚举、使用枚举以及如何通过枚举实现指令的匹配和处理。

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。

枚举的基本使用代码案例

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);

    }
}

测试结果

在这里插入图片描述

相关文章
|
10天前
|
Java 数据库
案例一:去掉数据库某列中的所有英文,利用java正则表达式去做,核心:去掉字符串中的英文
这篇文章介绍了如何使用Java正则表达式从数据库某列中去除所有英文字符。
28 15
|
9天前
|
jenkins Java 测试技术
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
【10月更文挑战第8天】本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
21 5
|
1月前
|
安全 Java 索引
Java——反射&枚举
本文介绍了Java反射机制及其应用,包括获取Class对象、构造方法、成员变量和成员方法。反射允许在运行时动态操作类和对象,例如创建对象、调用方法和访问字段。文章详细解释了不同方法的使用方式及其注意事项,并展示了如何通过反射获取类的各种信息。此外,还介绍了枚举类型的特点和使用方法,包括枚举的构造方法及其在反射中的特殊处理。
50 9
Java——反射&枚举
|
14天前
|
分布式计算 NoSQL Java
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
34 2
|
28天前
|
Java
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
67 5
|
28天前
|
安全 Java 开发者
Java 枚举(enum)详解
Java 中的枚举(`enum`)是一种特殊的数据类型,用于定义一组固定的常量,提升代码的类型安全性和可读性。枚举使用 `enum` 关键字定义,支持方法和构造函数,具有类型安全、单例、自动序列化等特点,并且可以遍历和用于 `switch` 语句中。实际应用包括状态机、指令集、类型标识等场景。枚举使代码更加清晰易维护。
|
12天前
|
Java C#
Java的监听处理事件--小球移动案例
Java的监听处理事件--小球移动案例
9 0
|
2月前
|
人工智能 Java 定位技术
人工智能ChatGPT 体验案例:使用ChatGPT实现java扫雷小游戏
这篇文章通过一个使用ChatGPT实现的Java扫雷小游戏案例,展示了ChatGPT在编程领域的应用能力。文章中包含了扫雷游戏的Java代码实现,代码中初始化了雷区地图,随机放置雷,计算每个格子周围雷的数量,并提供了一个简单的文本界面与用户交互进行游戏。游戏通过控制台输入接受玩家的指令,并给出相应的反馈。
人工智能ChatGPT 体验案例:使用ChatGPT实现java扫雷小游戏
|
2月前
|
监控 算法 安全
Java并发编程案例分析:死锁的检测与解决
Java并发编程案例分析:死锁的检测与解决
32 2
|
2月前
|
安全 Java API
精通 Java 后台开发:案例分析与实践
精通 Java 后台开发:案例分析与实践
44 2