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

    }
}

测试结果

在这里插入图片描述

相关文章
|
1月前
|
安全 Java 测试技术
🎉Java零基础:全面解析枚举的强大功能
【10月更文挑战第19天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
119 60
|
23天前
|
Java
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
48 24
|
1月前
|
jenkins Java 测试技术
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
71 3
|
1月前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
62 2
|
1月前
|
Java 关系型数据库 数据库
面向对象设计原则在Java中的实现与案例分析
【10月更文挑战第25天】本文通过Java语言的具体实现和案例分析,详细介绍了面向对象设计的五大核心原则:单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则帮助开发者构建更加灵活、可维护和可扩展的系统,不仅适用于Java,也适用于其他面向对象编程语言。
37 2
|
2月前
|
Java 数据库
案例一:去掉数据库某列中的所有英文,利用java正则表达式去做,核心:去掉字符串中的英文
这篇文章介绍了如何使用Java正则表达式从数据库某列中去除所有英文字符。
57 15
|
2月前
|
安全 Java
Java多线程通信新解:本文通过生产者-消费者模型案例,深入解析wait()、notify()、notifyAll()方法的实用技巧
【10月更文挑战第20天】Java多线程通信新解:本文通过生产者-消费者模型案例,深入解析wait()、notify()、notifyAll()方法的实用技巧,包括避免在循环外调用wait()、优先使用notifyAll()、确保线程安全及处理InterruptedException等,帮助读者更好地掌握这些方法的应用。
24 1
|
3月前
|
安全 Java 索引
Java——反射&枚举
本文介绍了Java反射机制及其应用,包括获取Class对象、构造方法、成员变量和成员方法。反射允许在运行时动态操作类和对象,例如创建对象、调用方法和访问字段。文章详细解释了不同方法的使用方式及其注意事项,并展示了如何通过反射获取类的各种信息。此外,还介绍了枚举类型的特点和使用方法,包括枚举的构造方法及其在反射中的特殊处理。
74 9
Java——反射&枚举
|
2月前
|
jenkins Java 测试技术
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
【10月更文挑战第8天】本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
41 5
|
2月前
|
分布式计算 NoSQL Java
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
51 2
下一篇
DataWorks