Java之枚举,程序员应该掌握的开发技巧「简洁易懂又安全的代码」
2018-06-08 本文已影响8人
cb9841112785

java枚举
背景
JDK1.5引入了新的类型——枚举,枚举类型提高了代码的 简洁性、安全性以及便捷性 。
学习目标
学会枚举的基本用法
利用枚举去设计业务功能
代码举例
码农汪,在写一个新增内容的逻辑

内容实体对象
一般程序员可能定义static、type字段还是String或int吧,其实这样写容易出错又不好懂。

模拟调用新增逻辑
码农汪,粗心的把状态单词写错了,应该是EFFECTIVE
高级的程序员,肯定会设计这样的模型对象,先创建个枚举

把实体对象的状态替换为枚举类型

带枚举类型的对象
软件工程师根据业务把枚举的值传下去就行,如果错传编译器会提醒你,枚举也更通俗易懂

枚举
枚举的设计真的非常优雅,软件工程师们的最爱。
枚举用在哪些场景
1.表中的状态字段,都可以设计为枚举类型 status、type
2.业务中的策略规则信息、异常码类型、权限码功能等等。
枚举的语法我就不赘述了,在来个【接口+枚举】业务案例吧

异常码接口
很多技术分享,拼命的讲理论就是不给代码案例。

通用异常码1

通用异常码2

业务异常码
程序员可以根据业务场景选择通用异常码还是具体业务异常码,小项目定义一个异常码对象就够用了,我这里写了个比较复杂的。如果你项目业务够复杂,可以在异常码枚举添加具体字段进一步细化异常描述。

输出异常码信息
其实异常码必须要和异常结合起来使用,下篇我结合自定义异常来继续分析。
我还会分析注解权限功能,里面就有权限的枚举应用。
还有很多枚举的高级特性,我就不一 一说明了。用好枚举,给代码带来的好处太多了。