Java魔法值处理的四种方式

 更新时间:2023年11月06日 15:16:02   作者: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、总结

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java中单例模式讲解

    java中单例模式讲解

    这篇文章主要介绍了java中单例模式,本文通过简单的案例,讲解了该模式在java中的使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • maven利用tomcat插件部署远程Linux服务器的步骤详解

    maven利用tomcat插件部署远程Linux服务器的步骤详解

    Maven已经是Java的项目管理常用方式,下面这篇文章主要给大家介绍了关于maven利用tomcat插件部署远程Linux服务器的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2017-11-11
  • Java并发编程中的volatile关键字详解

    Java并发编程中的volatile关键字详解

    这篇文章主要介绍了Java并发编程中的volatile关键字详解,volatile 用于保证我们某个变量的可见性,使其一直存放在主存中,不被移动到某个线程的私有工作内存中,需要的朋友可以参考下
    2023-08-08
  • Java的Socket实现长连接以及数据的发送和接收方式

    Java的Socket实现长连接以及数据的发送和接收方式

    这篇文章主要介绍了Java的Socket实现长连接以及数据的发送和接收方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • idea日志乱码和tomcat日志乱码问题的解决方法

    idea日志乱码和tomcat日志乱码问题的解决方法

    这篇文章主要介绍了idea日志乱码和tomcat日志乱码问题的解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • IDEA新建Springboot项目(图文教程)

    IDEA新建Springboot项目(图文教程)

    下面小编就为大家带来一篇IDEA新建Springboot项目(图文教程)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Mybatis-Plus之ID自动增长的设置实现

    Mybatis-Plus之ID自动增长的设置实现

    本文主要介绍了Mybatis-Plus之ID自动增长的设置实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 基于jenkins构建结果企业微信提醒

    基于jenkins构建结果企业微信提醒

    这篇文章主要介绍了基于jenkins构建结果企业微信提醒,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Java Socket编程实例(一)- TCP基本使用

    Java Socket编程实例(一)- TCP基本使用

    这篇文章主要讲解Java Socket编程中TCP的基本使用,希望能给大家做一个参考。
    2016-06-06
  • 显示IntelliJ IDEA工具的Run Dashboard功能图文详解

    显示IntelliJ IDEA工具的Run Dashboard功能图文详解

    这篇文章主要介绍了显示IntelliJ IDEA工具的Run Dashboard功能,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07

最新评论