枚举类型是Java1.5的新特性,是指由一组固定的常量组成合法的类型。Java中由关键字enum来定义一个枚举类型。我们可以使用枚举来取代用public final static修饰的一批相关数据。如我们定义红绿灯的颜色:

public final static int RED = 1;

public final static int GREEN = 2;

public final static int YELLOW = 3;

当需要使用时,通过switch来获取值:

public static String getValue(int color) {

StringBuffer result = new StringBuffer();

switch (color) {

case RED:

result.append("红灯");

break;

case GREEN:

result.append("绿灯");

break;

case YELLOW:

result.append("黄灯");

break;

default:

result.append("颜色有误");

break;

}

return result.toString();

}

调用方法时需要传入参数,但是却无法保证传入的数据是合法的。

例如:System.out.println(getValue(RED));//正常

System.out.println(getValue(6));//存在类型不安全问题,编译不报错,但是数据不合要求

若使用枚举方式来代替,修改一下设置的方式就可以比较容易的获取到值:

定义:

public enum Color {

RED("红灯"), GREEN("绿灯"), YELLOW("黄灯");

private String value = "";

private Color(String value) {

this.value = value;

}

public String getValue() {

return value;

}

}

调用测试方法:

public static void test(Color c){

String val = c.getValue();

System.out.println(val);

}

test(Color.RED);

输出:红灯

如何传入的值不是Color中的枚举值,则编译时就不通过。

同时枚举还可以设置各种颜色的灯亮时对应的行动:

在枚举中添加行动的抽象方法,并在枚举实例中实现:

public enum Color {

RED("红灯") {

@Override

public String action() {

return "停";

}

}, GREEN("绿灯") {

@Override

public String action() {

return "行";

}

}, YELLOW("黄灯") {

@Override

public String action() {

return "等一等";

}

};

private String value = "";

private Color(String value) {

this.value = value;

}

public String getValue() {

return value;

}

//行动的抽象方法

public abstract String action();

}

调用测试方法:

public static void test(Color c){

String val = c.getValue();

String action = c.action();

System.out.println(val);

System.out.println(action);

}

test(Color.RED);

输出结果:红灯

综上所述,使用枚举可以传入参时进行规则校验,参数只能为Color中的三个枚举值,否则在编译阶段就不能通过,保证了程序类型的安全性。

java枚举类型enum用法_Java枚举类型——Enum的简单用法相关推荐

  1. 枚举类型enum用法_Java枚举深度解读,看这篇就够了

    作者 | 涛GuoGuo的跟屁虫丶博Ke 来源 | urlify.cn/aaamQf 66套java从入门到精通实战课程分享 Java枚举 1.枚举类概念的理解与定义 一个类的对象是有限个,确定的,我 ...

  2. java 枚举使用简书_java枚举类型使用和详解

    1.定义 An enum type is a special data type that enables for a variable to be a set of predefined const ...

  3. 在java中关于枚举类型的特性_java枚举类型小结

    JDK5.0之前,我们一般选择使用 interface 来保存常量组,以此来弥补 JDK 中没有枚举类型的缺陷,从JDK5.0开始,Sun引进了一个全新的关键字 enum 来定义一个枚举类.同inte ...

  4. java 枚举类型 取值_java枚举类型

    一: 有时候变量的取值是在有限的集合内,比如说服务器状态:上线.下线.报废等. 可以将这些装备标记为:1.2.3 但是这种情况,我们在给变量赋值的有时候赋值为错误的值比如:0 或者true 这时候就出 ...

  5. java enum 随机_Java 枚举(enum)

    1.枚举(enum) enum是一个特殊的类,代表一组常量(不可更改的变量,如,final变量). 要创建enum,请使用enum关键字(而不是类或接口),并用逗号分隔常量.请注意,它们应使用大写字母 ...

  6. java typedef的用法_Java 枚举用法详解(二)

    枚举可以添加方法 在概念章节提到了,枚举值默认为从0开始的有序数值 .那么问题来了:如何为枚举显示的赋值. Java 不允许使用 = 为枚举常量赋值 如果你接触过C/C++,你肯定会很自然的想到赋值符 ...

  7. java enum比较_Java枚举比较

    可以通过三种方式比较两个枚举常量: 使用Enum类的compareTo()方法 使用Enum类的equals()方法 使用==运算符 Enum类的compareTo()方法比较同一枚举类型的两个枚举常 ...

  8. java 枚举参数为对象_Java枚举值

    枚举类型定义了两件事: 枚举常量名称 常量的顺序 以下代码声明了一个名为Level的公共枚举类型,它具有四个枚举常量:LOW,MEDIUM,HIGH 和 URGENT. public enum Lev ...

  9. java包装类有几种_Java包装类型有几种

    Java包装类型有8种,分别是:1.Byte:2.Integer:3.Short:4.Long:5.Float:6.Double:7.Boolean:8.Character. [相关学习推荐:java ...

最新文章

  1. python自带的shell是什么-python shell是什么东西?
  2. Oracle OS Block Header
  3. Yii2使用Cookie的注意事项
  4. linux之source
  5. 三种流行的数据库查询表记录数【转】
  6. 科普 | 你必须了解的漏洞利用缓解及对抗技术
  7. SAP Spartacus directive学习笔记
  8. 世界是个班,美国是班长,中国是团支书(太经典了!)
  9. 新版 chrome 将原生支持图片懒加载!
  10. http协议介绍及httpd特性详解
  11. 在阿里云创建子域名,配置nginx,使用pm2部署node项目到ubuntu服务器
  12. 教程向 | 安装 地表最强IDE---Microsoft Visual Studio 2022
  13. crontab 误删除恢复
  14. 对象base64转码_什么是 Base64 编码
  15. Linux7中安装DNS服务,CentOS7/RHEL7搭建DNS服务器
  16. yeezy350灰橙_新灰橙最高品质椰子350V2 对比正品进行测评,傻傻分不清!
  17. 电脑开机总是自动修复
  18. SpringBoot集成MyBatis(微服务)
  19. WebStorm中使用Live Tempalte
  20. 【Azure DevOps系列】什么是Azure DevOps

热门文章

  1. onResume无限循环
  2. matplot画图处理
  3. Matplot 与 Pyqt5 绘图
  4. sqlserver设置密码_sql server 用户#x27;sa#x27;登录失败(错误18456)
  5. JS label关键字详解
  6. Skywalking分布式链路跟踪(一)原理、docker搭建oap-ES7.x存储、配置java测试项目
  7. 小程序跳转H5页面没有返回按钮解决方案
  8. flex 与 overflow
  9. 362-git的远程仓库操作
  10. 第三方账号登录功能接入详细流程(必看)