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())
总结
虽然使用魔法值也不会报错,但是维护和阅读成本过高,还是遵循规范不使用魔法值比较好(部分代码是手敲的可能格式不太好看,大家就将就一下吧)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!