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())

总结

虽然使用魔法值也不会报错,但是维护和阅读成本过高,还是遵循规范不使用魔法值比较好(部分代码是手敲的可能格式不太好看,大家就将就一下吧)

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值