Java开发为什么不允许魔法值出现在代码中
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容介绍了"Java开发为什么不允许魔法值出现在代码中"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所
千家信息网最后更新 2026年11月01日Java开发为什么不允许魔法值出现在代码中
本篇内容介绍了"Java开发为什么不允许魔法值出现在代码中"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
静态常量取代魔法值
像下面这个例子:
if (billCount > 75) { //todo} else { //todo}如果在不了解这块的业务的同事,在读到这块代码的时候,可能会想,75 是什么鬼,为啥和这个数比较,背后深藏着什么秘密吗?可能只有当时的开发人员记得了,导致代码可读性和可维护性极差。
如果声明一个常量,来替换该魔法值,可能就会使代码的可读性和可维护性大大增加。
static final Integer BASIC_BILL_COUNT = 75;
还有些魔法表达式,比如:
if (value > 60 && value <= 80 && type = 1) { // todo}比如这个表达式是表示状态为正常且项目活跃,就可以定义:
boolean isActiveProject = value > 60 && value <= 80 && type = 1;
这样是不是可读性就提高了,一眼就可以看出来这块代码的逻辑。
枚举类取代魔法值
还有一种消除魔法值的方式是使用枚举类代替,下面让我们举个例子:
if (eventId == 1) { System.out.println("睡觉");} else if (eventId == 2) { System.out.println("吃饭");} else if (eventId == 3) { System.out.println("打豆豆");}如上代码是针对事件 id 去执行相应的事件,如果事件比较少,大家还可以勉强记住每个 eventId 对应的含义,但是随着事件 id 的增多,很可能会发生,新来的员工把事件 id 给搞混了,导致执行错误的事件,发生 bug。
那么我们可以使用枚举类来表示相应的事件:
public enum EventEnum {/*** 睡觉*/SLEEP_EVENT(1, "睡觉"),/*** 吃饭*/EAT_EVENT(2, "吃饭"),/*** 打豆豆*/FIGHT_PEA_EVENT(3, "打豆豆");private int eventId;private String desc;EventEnum(int eventId, String desc) {this.eventId = eventId;this.desc = desc;}public int getEventId() {return eventId;}public String getDesc() {return desc;}}
修改完之后的代码如下:
if (eventId == EventEnum.SLEEP_EVENT.getEventId()) { System.out.println("睡觉");} else if (eventId == EventEnum.EAT_EVENT.getEventId()) { System.out.println("吃饭");} else if (eventId == EventEnum.FIGHT_PEA_EVENT.getEventId()) { System.out.println("打豆豆");}是不是可读性急剧提升,还不快看看自己代码中有没有这样的魔法值出现,有的话赶紧改造起来。
还有如果你需要在不同的地点引用同一数值,魔法数会让你烦恼不已,因为一旦这些数字发生改变,就必须在程序中找到所有的魔法值,并将它们全部修改一遍,这样就太费时费力了。
其实不只是 Java 不应该在代码中使用魔法值,其他语言亦是如此。
"Java开发为什么不允许魔法值出现在代码中"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
魔法
代码
事件
可读性
豆豆
开发
例子
内容
可维护性
常量
更多
知识
表达式
不同
实用
烦恼
学有所成
接下来
不快
人员
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网佳科技有限公司
互联网科技官网
互联网科技有限公司经营范围
圆梦互联网科技
互联网 卓越科技
浩特互联网科技
九亚互联网科技
小马过河互联网科技
互联网科技美容
科技互联网创业计划书
互联网科技公司招聘
互联网教育科技公司vipkid
翼展科技 首家互联网医院
众安科技工业互联网合作
互联网安防科技感
从那以后互联网科技有限公司
盐城市攀科互联网科技有限公司
亚光科技低轨卫星互联网
青岛互联网科技园
互联网高科技绘画
新华互联网科技学校
互联网和科技创新
金诺互联网科技
互联网科技论文
小马过河互联网科技
互联网科技股午盘股票涨跌
花神(南京)互联网科技有限公司
科技类公司包括互联网吗
南博望互联网科技有限公司
青岛易易互联网科技