Java 魔法值处理的四种方法
Java 魔法值处理方案
魔法值的定义
魔法值是Java中突兀出现在代码中的常量,比如
if(user.status==2){
.....
}
这段代码里面的2就是一个魔法值,这样的数据会使得代码难以理解,并且如果这个2用的地方很多,以后想要更改也很麻烦还容易遗漏,所以就需要规范一下对魔法值的处理。
方法一 静态常量(不推荐)
public final static STATUS_FALSE=0;
public final static STATUS_TRUE=1;
直接在类中定义一个常量,这种方法对于魔法值的使用范围只在一个类的范围内的情况下比较方便,哦,对了。常量的命名一般都是大写。
方法二 接口中定义
public interface UserService{
public final static STATUS_FALSE=0;
public final static STATUS_TRUE=1;
}
写在接口中的话好处就是,继承这个接口的实现类都可以使用这些常量。
方法三 定义在实体类
public class user{
private String name;
private Integer status;
public final static STATUS_FALSE=0;
public final static STATUS_TRUE=1;
}
这样写是比较推荐的,你可以在任意想用的地方使用类名打点的方式使用这些常量。如果要写的常量比较多也可以直接建一个专门用来存放静态常量的类。
方法四 使用枚举类 enum
枚举类是一种比较特殊的类想了解的可以去搜搜我这边只举个简单的使用例子。
public enum CarAssetsEnum {
DELETE_FALSEE(0,"已删除"),
DELETE_TRUE(1,"未删除");
private final Integer value;
private final String description;
CarAssetsEnum(Integer value,String description){
this.value=value;
this.description=description;
}
public Integer value(){
return this.value;
}
public String description(){
return this.description;
}
}
在使用的时候就可以直接这样使用
user.setStatus(CarAssetsEnum.DELETE_FALSEE.value())
总结
虽然使用魔法值也不会报错,但是维护和阅读成本过高,还是遵循规范不使用魔法值比较好(部分代码是手敲的可能格式不太好看,大家就将就一下吧)
Java 魔法值处理的四种方法的更多相关文章
- 【Java】详解Java解析XML的四种方法
XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML.本文将详细介绍用Java解析XML的四种方法. AD: XML现在已经成为一种通用的数据交换格式,它的平台无关性,语 ...
- java环境变量配置四种方法
原文:java环境变量配置四种方法 Java编程首要工作就是安装JDK(Java Development Kit).一通“NEXT”点完安装后就是最重要的环境变量设置了.也许有人会问为什么要设置环境变 ...
- Java解析XML的四种方法详解 - 转载
XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML.本文将详细介绍用Java解析XML的四种方法 在做一般的XML数据交换过程中,我更乐意传递XML字符串,而不是格式化 ...
- JAVA实现单例模式的四种方法和一些特点
JAVA实现单例模式的四种方法和一些特点,需要的朋友可以参考一下 一.饿汉式单例类 复制代码 代码如下: public class Singleton { private Sing ...
- java中定时器的四种方法
package com.lid; import java.util.Calendar; import java.util.Date; import java.util.Timer; import ja ...
- java 遍历map的四种方法
16:21:42 Map.entrySet() 这个方法返回的是一个Set<Map.Entry<K,V>>,Map.Entry 是Map中的一个接口,他的用途是表示一个映射项( ...
- java创建线程的四种方法
第一种: 通过继承Thread类创建线程 第二种: 通过实现Runnable接口创建线程 这两种早已烂记于心,这里就不作过多的介绍, 主要介绍其源码 Thread类 implements Runna ...
- Java中创建对象的四种方法
第一种 使用new关键字 第二种 使用反射技术:1)通过Class类的newInstance()方法:2)通过Constructor类的newInstance方法 第三种 通过Object类的clon ...
- java语言复制数组的四种方法
JAVA语言的下面几种数组复制方法中,哪个效率最高? B.效率:System.arraycopy > clone > Arrays.copyOf > for循环 1.System.a ...
- java 遍历arrayList的四种方法
package com.test; import java.util.ArrayList;import java.util.Iterator;import java.util.List; public ...
随机推荐
- Unity 制作KinematicCharacterController
本篇博客为游戏开发记录,博主只是想自己做个移动组件给自己做游戏用,此间产生的一些经验也做一个分享. 简介 为了在3D世界中自由的控制我们的角色,引擎一般会提供一些基础的移动组件,上层用户做提供一些每帧 ...
- Spring Boot 日志文件
Spring Boot 日志文件 日志文件是用于记录系统操作事件的记录文件或文件集合,可分为事件日志和消息日志.具有处理历史数据.诊断问题的追踪以及理解系统的活动等重要作用. 事件日志记录系统的执行中 ...
- javaSE 温故而知新
重温 javaSE 前言:有地基才能有高楼大厦 目录 重温 javaSE 认识java Java基础 1.数据类型 1.1 基本数据类型: 1.2 引用数据类型 1.3 基本数据类型的包装类 1.4 ...
- 【FAQ】关于CP反馈的联运应用的常见结算问题小结
问题一:为什么在"我的账户">>"收益"里面的金额和支付报表中的金额对不上 ? 关于联运类应用付费产品在华为平台上结算问题,您可以详细参考一下&qu ...
- 【从0开始编写webserver·基础篇#03】TinyWeb源码阅读,还是得看看靠谱的项目
[前言] 之前通过看书.看视频和博客拼凑了一个webserver,然后有一段时间没有继续整这个项目 现在在去看之前的代码,真的是相当之简陋,而且代码设计得很混乱,我认为没有必要继续在屎堆上修改了,于是 ...
- 再见RestTemplate,Spring 6.1新特性:RestClient 了解一下!
在最近发布的Spring 6.1 M2版本中,推出了一个全新的同步HTTP客户端:RestClient.用一句话来让Spring开发者认识RestClient的话:像WebClient一样具备流畅AP ...
- Mediabox:年度最佳音视频开发工具
"2023稀土开发者大会"落下帷幕,由稀土掘金社区评选的的掘金技术引力榜重磅出炉,共有22个优秀实践案例上榜,涵盖对技术行业发展有特别贡献的人物.开发工具.开源项目.技术团队和技术 ...
- http方式内网搭建CDH6.3.2与部分组件优化
Cloudera_Manager_6.3.2安装配置文档 1. 配置准备 Cloudera Manager (简称CM)用于管理CDH6集群,可进行节点安装.配置.服务配置等,提供Web窗口界面提高了 ...
- 微服务探索之路06篇k8s配置文件Yaml部署Redis使用Helm部署MongoDB和kafka
1 安装Redis 1.1创建配置文件redis.conf 切换到自己的目录下如本文是放在/home/ubuntu下 cd /home/ubuntu vim redis.conf bind 0.0.0 ...
- 信创啊,信创。Solon 的 war 包,现在同时支持 jakarta.servlet(及 javax.servlet)容器了!
Solon 是个神奇的项目,不是基于 Servlet 的.但是又很支持 Servlet,尤其是 war 包.打起来还挺方便的. 如果你是做信创的(听说,很多信创项目是用 war 部署到 tomcat ...