java枚举类型enum用法_Java枚举类型——Enum的简单用法
枚举类型是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的简单用法相关推荐
- 枚举类型enum用法_Java枚举深度解读,看这篇就够了
作者 | 涛GuoGuo的跟屁虫丶博Ke 来源 | urlify.cn/aaamQf 66套java从入门到精通实战课程分享 Java枚举 1.枚举类概念的理解与定义 一个类的对象是有限个,确定的,我 ...
- java 枚举使用简书_java枚举类型使用和详解
1.定义 An enum type is a special data type that enables for a variable to be a set of predefined const ...
- 在java中关于枚举类型的特性_java枚举类型小结
JDK5.0之前,我们一般选择使用 interface 来保存常量组,以此来弥补 JDK 中没有枚举类型的缺陷,从JDK5.0开始,Sun引进了一个全新的关键字 enum 来定义一个枚举类.同inte ...
- java 枚举类型 取值_java枚举类型
一: 有时候变量的取值是在有限的集合内,比如说服务器状态:上线.下线.报废等. 可以将这些装备标记为:1.2.3 但是这种情况,我们在给变量赋值的有时候赋值为错误的值比如:0 或者true 这时候就出 ...
- java enum 随机_Java 枚举(enum)
1.枚举(enum) enum是一个特殊的类,代表一组常量(不可更改的变量,如,final变量). 要创建enum,请使用enum关键字(而不是类或接口),并用逗号分隔常量.请注意,它们应使用大写字母 ...
- java typedef的用法_Java 枚举用法详解(二)
枚举可以添加方法 在概念章节提到了,枚举值默认为从0开始的有序数值 .那么问题来了:如何为枚举显示的赋值. Java 不允许使用 = 为枚举常量赋值 如果你接触过C/C++,你肯定会很自然的想到赋值符 ...
- java enum比较_Java枚举比较
可以通过三种方式比较两个枚举常量: 使用Enum类的compareTo()方法 使用Enum类的equals()方法 使用==运算符 Enum类的compareTo()方法比较同一枚举类型的两个枚举常 ...
- java 枚举参数为对象_Java枚举值
枚举类型定义了两件事: 枚举常量名称 常量的顺序 以下代码声明了一个名为Level的公共枚举类型,它具有四个枚举常量:LOW,MEDIUM,HIGH 和 URGENT. public enum Lev ...
- java包装类有几种_Java包装类型有几种
Java包装类型有8种,分别是:1.Byte:2.Integer:3.Short:4.Long:5.Float:6.Double:7.Boolean:8.Character. [相关学习推荐:java ...
最新文章
- python自带的shell是什么-python shell是什么东西?
- Oracle OS Block Header
- Yii2使用Cookie的注意事项
- linux之source
- 三种流行的数据库查询表记录数【转】
- 科普 | 你必须了解的漏洞利用缓解及对抗技术
- SAP Spartacus directive学习笔记
- 世界是个班,美国是班长,中国是团支书(太经典了!)
- 新版 chrome 将原生支持图片懒加载!
- http协议介绍及httpd特性详解
- 在阿里云创建子域名,配置nginx,使用pm2部署node项目到ubuntu服务器
- 教程向 | 安装 地表最强IDE---Microsoft Visual Studio 2022
- crontab 误删除恢复
- 对象base64转码_什么是 Base64 编码
- Linux7中安装DNS服务,CentOS7/RHEL7搭建DNS服务器
- yeezy350灰橙_新灰橙最高品质椰子350V2 对比正品进行测评,傻傻分不清!
- 电脑开机总是自动修复
- SpringBoot集成MyBatis(微服务)
- WebStorm中使用Live Tempalte
- 【Azure DevOps系列】什么是Azure DevOps