java enum 定义状态变量_java中枚举表示数据状态

1 场景

本文主要讲下java程序中对于状态数据的状态代码和状态名称如何管理的问题。

对于数据的状态,程序中,经常不会存储状态的名称,而会存储状态对应的代码。

每个java后端开发,面对数据库中的一个字段注释:

del_flag 删除状态(0:正常;1:删除;)

都会纠结一个问题,在java代码中,这个字段delFlag值对应的0和1和分别对应的含义正常、删除,写在java代码的哪个地方比较合适?

很多人认为这个对于很大的项目来说无非是个很小的事,写在哪里,无所谓,都不会影响我们的项目。讲道理,这个无法反驳。

这篇文章,让我们一起剖析下这件微不足道的小事。

在这里,我们为了方便,定义状态代码和状态名称的类型均为字符串。

2 步骤

2.1 直接使用

最简单的用法,就是直接在程序中使用状态的代码,如下。

//(1)设置删除标记为正常

record.setDelFlag("0");

......

//(2)判断删除标志

if("0".equals(record.getDelFlag())){

return "正常";

}

2.1.1 优点

项目初期管理简单,不用花费时间进行代码封装。

2.1.2 缺点

(1)项目中出现大量手写的状态代码和状态名称。代码检查工具会提示魔法值,如项目中对代码检查要求高,此部分代码无法合并主干代码。

(2)如果状态代码对应的状态名称发生了变动,全局更改起来,将是十分致命的。

(3)研发人员水平不一致,手动在代码里写状态代码和状态名称,十分容易写错。

2.2 静态常量

部分项目,会定义一个java类,将状态码定义为其中的静态常量。其中定义了项目中用到的所有状态代码。

public class StateContext{

/**

* 正常

*/

public static final String NORMAL="0";

/**

* 删除

*/

public static final String DEL="1";

//其他状态代码

......

}

静态常亮的使用方式如下:

//(1)设置删除标记为正常

record.setDelFlag(StateContext.NORMAL);

......

//(2)判断删除标志

if(StateContext.NORMAL.equals(record.getDelFlag())){

return "正常";

}

2.2.1 优点

状态代码,可以直接通过类的静态变量使用(状态名称,也可以通过类的静态变量定义)。

2.2.2 缺点

(1)需要在类中大量定义静态变量,使用时,需十分明确使用的变量的名字,勿使用成别的变量。

(2)一般只通过静态变量定义状态代码,状态名

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值