枚举是 JDK 1.5 新增的数据类型 , 使用枚举我们可以很好的描述一些特定的业务场景 , 比如一年中的春、夏、秋、冬 , 还有每周的周一到周天 , 还有各种颜色 , 以及可以用它来描述一些状态信息 , 比如错误码等 。
枚举类型不止存在在 JAVA 语言中 , 在其它语言中也都能找到它的身影 , 例如 C# 和 Python 等 , 但我发现在实际的项目中使用枚举的人很少 , 所以本文就来聊一聊枚举的相关内容 , 好让朋友们对枚举有一个大概的印象 , 这样在编程时起码还能想到有“枚举”这样一个类型 。
文章插图
枚举的 7 种使用方法
很多人不使用枚举的一个重要的原因是对枚举不够熟悉 , 那么我们就先从枚举的 7 种使用方法说起 。
用法一:常量在 JDK 1.5 之前 , 我们定义常量都是 public static final... , 但有了枚举 , 我们就可以把这些常量定义成一个枚举类了 , 实现代码如下:
public enum ColorEnum { RED, GREEN, BLANK, YELLOW }
用法二:switch将枚举用在 switch 判断中 , 使得代码可读性更高了 , 实现代码如下:enum ColorEnum { GREEN, YELLOW, RED}public class ColorTest { ColorEnum color = ColorEnum.RED; public void change() { switch (color) { case RED: color = ColorEnum.GREEN; break; case YELLOW: color = ColorEnum.RED; break; case GREEN: color = ColorEnum.YELLOW; break; } }}
用法三:枚举中增加方法我们可以在枚举中增加一些方法 , 让枚举具备更多的特性 , 实现代码如下:public class EnumTest { public static void main(String[] args) { ErrorCodeEnum errorCode = ErrorCodeEnum.SUCCESS; System.out.println("状态码:" + errorCode.code() + " 状态信息:" + errorCode.msg()); }}enum ErrorCodeEnum { SUCCESS(1000, "success"), PARAM_ERROR(1001, "parameter error"), SYS_ERROR(1003, "system error"), NAMESPACE_NOT_FOUND(2001, "namespace not found"), NODE_NOT_EXIST(3002, "node not exist"), NODE_ALREADY_EXIST(3003, "node already exist"), UNKNOWN_ERROR(9999, "unknown error"); private int code; private String msg; ErrorCodeEnum(int code, String msg) { this.code = code; this.msg = msg; } public int code() { return code; } public String msg() { return msg; } public static ErrorCodeEnum getErrorCode(int code) { for (ErrorCodeEnum it : ErrorCodeEnum.values()) { if (it.code() == code) { return it; } } return UNKNOWN_ERROR; }}
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Java中读取File文件内容转为String类型
- 淘宝店铺分几种 淘宝店铺分为几种类型
- 在 JavaScript 中替换所有指定字符 3 种方法
- 搞懂 面向对象 的核心思想,JAVA中封装、包和访问权限的知识点
- 您应该了解的顶级JavaScript库
- javascript自学记录:递归
- 阿里的垃圾怎么回收?Java G1源码分析与调优手册
- JavaScript代码整洁之道
- 陈香铁观音的制作工序,安溪铁观音的三大类型
- 一文带你弄懂 Java 动态代理