Java魔法值问题、解决方法

目录

什么是魔法值?

存在魔法值的坏处

 1. 可维护性极差,不方便以后维护更新。

 2.代码可读性极差。

如何解决魔法值问题?

 1. 静态常量

 2. 枚举类 enum

总结


什么是魔法值?

魔法值就是Java代码中直接出现、未经预先定义的数值(出现的很突兀、莫名其妙,需要结合上下文才可能理解)。

举个栗子:

if ("200".equals(successCode)) {  //200就是一个魔法值
    System.out.println("执行成功")
} else if ("900".equals(errorCode)) { // 900也是一个魔法值
    System.out.println("执行失败,出现错误")
}

存在魔法值的坏处

 1. 可维护性极差。

不方便以后的维护更新,修改变量的值时需要修改多处,可能还会不小心修改了其他不该修改的常量。

 2.代码可读性极差。

在阅读代码时,不能快速理解魔法值的数值表示的含义,还要去花费不必要的时间去理解。

如何解决魔法值问题?

一般使用静态常量或定义枚举类

 1. 静态常量

仅在当前类中使用或在方法内部使用的值,可以通过定义静态常量的方式来避免魔法值的出现。

注意:静态常量定义时约定名称的所有字母都要大写,以此表示该标识为不变常量

public final static SUCCESS = 200;
public final static STATUS_TRUE = 900;

 2. 枚举类 enum

举类能够约束静态常量的定义规范,提供统一格式的静态常量值

public enum MesssgeEnum {

    SUCCESS("200","执行成功"),
    ERROR("900","执行失败,出现错误");

    private String code;
    private String message;

    MesssgeEnum(String code, String message) {
        this.code = code;
        this.message = message;
    }

    public String getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }
}

总结

遵循公认的阿里巴巴代码规范,可以有效避免开发过程中的一些小问题(小问题找起来才头大),提升开发的效率和代码的可阅读性。

你可能感兴趣的:(java)