Java魔法值处理的四种方式
作者:242030
这篇文章主要介绍了Java魔法值处理的四种方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
1、魔法值的定义
魔法值是 Java 中突兀出现在代码中的常量
比如:
if(user.status==2){ }
这段代码里面的2就是一个魔法值,这样的数据会使得代码难以理解,并且如果这个2用的地方很多,以后想要更
改也很麻烦还容易遗漏,所以就需要规范一下对魔法值的处理。
2、方法一静态常量(不推荐)
public final static STATUS_FALSE=0; public final static STATUS_TRUE=1;
直接在类中定义一个常量,这种方法对于魔法值的使用范围只在一个类的范围内的情况下比较方便,哦,对了。常
量的命名一般都是大写。
3、方法二接口中定义
public interface UserService{ public final static STATUS_FALSE=0; public final static STATUS_TRUE=1; }
写在接口中的话好处就是,继承这个接口的实现类都可以使用这些常量。
4、方法三定义在实体类
public class user{ private String name; private Integer status; public final static STATUS_FALSE=0; public final static STATUS_TRUE=1; }
这样写是比较推荐的,你可以在任意想用的地方使用类名打点的方式使用这些常量。
如果要写的常量比较多也可以
直接建一个专门用来存放静态常量的类。
5、方法四使用枚举类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())
6、总结
虽然使用魔法值也不会报错,但是维护和阅读成本过高,还是遵循规范不使用魔法值比较好(部分代码是手敲的可能格式不太好看,大家就将就一下吧)。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。