通过枚举替换if-else语句的解决方案

在头条上看到的一个博主的视频,自己敲代码记录下!

  1. 定义接口

    /*** 吃** @author huangzheng* @date 2024/03/26*/
    public interface Eat {/*** 吃 方法*/void eat();
    }
    
  2. 定义实现类
     

    /*** 动物枚举** @author huangzheng* @date 2024/03/26*/
    public enum AnimalEat implements Eat {Dog() {@Overridepublic void eat() {System.out.println("吃骨头");}},Cat() {@Overridepublic void eat() {System.out.println("吃鱼");}},Sheep() {@Overridepublic void eat() {System.out.println("吃草");}};}
    
  3. 测试类

    /*** @Description TODO* @Author huangzheng* @Date 2024/3/26 14:30*/
    @Slf4j
    public class Test {public static void main(String[] args) throws BaseException {AnimalEat animal;String animalName = "cat";try {animal = AnimalEat.valueOf(animalName);} catch (IllegalArgumentException e) {String simpleMessage = ExceptionUtil.getMessage(e);log.error("该动物{}类型不存", animalName);throw new BaseException(simpleMessage);}animal.eat();}
    }
  4. 测试结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/568421.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue.js 3.4的新特性

Vue.js 3.4的新特性 目前,Vue.js的版本已经更新到3.4,这次更新不仅带来了性能上的飞跃,还引入了许多新特性,进一步优化了开发效率。 1. 性能提升 在性能方面,Vue.js 3.4 全新重写了模板解析器。与之前基于正则表达式…

openssl 升级1.1.1.1k 到 3.0.13

下载 https://www.openssl.org/source/ tar -zxvf openssl-3.0.13.tar.gzcd openssl-3.0.13/./config enable-fips --prefix/usr/local --openssldir/usr/local/opensslmake && make install 将原有openssl备份 mv /usr/bin/openssl /usr/bin/openssl.bak mv /usr/i…

unity小:使用Unity FBX Exporter 将 3DMax场景或者模型无损导入Unity

本指南旨在帮助您顺利安装和配置Unity FBX Exporter插件,并解决相关的常见问题。 安装 FBX Exporter 下载并安装FBX Exporter插件。 打开Unity,选择 Edit > Project Settings > Fbx Export。 点击 Install Unity Integration 并选择3ds Max的插…

[深度学习]yolov8+streamlit搭建精美界面GUI网页设计源码实现三

【设计思路介绍】 为了使用YOLOv8和Streamlit搭建一个精美的界面GUI网页,你需要遵循几个关键步骤。以下是一个简化的流程,帮助你设计并实现这一目标: 1. 环境准备 安装YOLOv8 YOLOv8是一个先进的实时目标检测模型。你需要先下载并安装YOL…

(已解决)vue3使用富文本出现样式乱码

我在copy代码到项目里面时候发现我的富文本乱码了 找了一圈不知道是哪里vue3不适配还是怎么,后来发现main.js还需要引入 import VueQuillEditor from vue-quill-editor // require styles 引入样式 import quill/dist/quill.core.css import quill/dist/quill.snow…

Redis锁,乐观锁与悲观锁

锁 悲观锁 认为什么时候都会出问题,无论做什么都会加锁 乐观锁 很乐观,认为什么时候都不会出问题,所以不会上锁。 更新数据时去判断一下,在此期间,是否有人修改过这个数据 应用于:秒杀场景 **watch*…

工程企业的未来选择:Java版工程项目管理系统平台与数字化管理的融合

在现代化的工程项目管理中,一套功能全面、操作便捷的系统至关重要。本文将介绍一个基于Spring Cloud和Spring Boot技术的Java版工程项目管理系统,结合Vue和ElementUI实现前后端分离。该系统涵盖了项目管理、合同管理、预警管理、竣工管理、质量管理等多个…

汽车后视镜反射率检测光纤光谱仪:安全驾驶的守护神

在汽车的日常使用中,后视镜扮演着至关重要的角色。它不仅帮助驾驶员观察车辆后方的情况,还确保了行车的安全性。然而,由于各种原因,后视镜的反射率可能会降低,从而影响到驾驶员的视线范围和判断能力。为了解决这一问题…

JavaScript 基础、内置对象、BOM 和 DOM 常用英文单词总结

一提到编程、软件、代码。对于英语不是很熟悉的同学望而却步。其实没有想像中的难么难,反复练习加上自己的思考、总结,会形成肌肉记忆。整理一下,初学者每天30遍。 1、JavaScript 基础语法 break:中断循环或 switch 语句的执行。…

代码随想录学习Day 13

102.二叉树的层次遍历 题目链接 讲解链接 层序遍历一个二叉树。就是从左到右一层一层的去遍历二叉树。需要借用一个辅助数据结构即队列来实现,队列先进先出,符合一层一层遍历的逻辑,而用栈先进后出适合模拟深度优先遍历也就是递归的逻辑。…

uni-app中web-view的使用

1. uni-app中web-view的使用 uni-app中的web-view是一个 web 浏览器组件,可以用来承载网页的容器,uni-app开发的app与web-view实现交互的方式相关简单,应用通过属性message绑定触发事件,然后在web-view的网页向应用 postMessage 触…

基于modbus TCP实现EPICS与西门子S7 1200系列1215C PLC的通信

PLC介绍 西门子系列PLC在国内的市场占比第一,1200系列中小型PLC,因其众多的产品序列、强大的通讯功能和丰富扩展模块,被使用在工业生产、自动化生产线、智能制造、机器人等各行各业。根据CPU的供电电源的型号和数字量输出的类型,…