
Java枚举类型
发布日期:2021-05-07 14:41:11
浏览次数:13
分类:技术文章
本文共 2601 字,大约阅读时间需要 8 分钟。
目录
1 JDK1.5引入了枚举类型
枚举类型的定义包括枚举声明和枚举体。格式如下:
enum 枚举名 { 枚举体(常量列表)}
枚举体就是放置一些常量。我们可以写出我们的第一个枚举类型,如示例8-27所示:
2 创建枚举类型
enum Season { SPRING, SUMMER, AUTUMN, WINDER }
3 枚举底层
所有的枚举类型隐性地继承自 java.lang.Enum。枚举实质上还是类!而每个被枚举的成员实质就是一个枚举类型的实例,他们默认都是public static final修饰的。可以直接通过枚举类型名使用它们。
注:
1. 当你需要定义一组常量时,可以使用枚举类型。
2. 尽量不要使用枚举的高级特性,事实上高级特性都可以使用普通类来实现,没有必要引入枚举,增加程序的复杂性!
4 枚举的使用
import java.util.Random;public class TestEnum { public static void main(String[] args) { // 枚举遍历 for (Week k : Week.values()) { System.out.println(k); } // switch语句中使用枚举 int a = new Random().nextInt(4); // 生成0,1,2,3的随机数 switch (Season.values()[a]) { case SPRING: System.out.println("春天"); break; case SUMMER: System.out.println("夏天"); break; case AUTUMN: System.out.println("秋天"); break; case WINDTER: System.out.println("冬天"); break; } }}/**季节*/enum Season { SPRING, SUMMER, AUTUMN, WINDTER}/**星期*/enum Week { 星期一, 星期二, 星期三, 星期四, 星期五, 星期六, 星期日}
运行效果:
5 java 中枚举类enum的values()方法的详解
前言:
关于枚举,相信使用的已经很普遍了,现在主要写的是枚举中的一个特殊方法,values(), 为什么说特殊呢,因为在Enum 的 API 文档中也找不到这个方法。接下来就看看具体的使用。
理论上此方法可以将枚举类转变为一个枚举类型的数组,因为枚举中没有下标,我们没有办法通过下标来快速找到需要的枚举类,这时候,转变为数组之后,我们就可以通过数组的下标,来找到我们需要的枚举类。接下来就展示代码了。
首先是我们自己的枚举类。
public enum EnumDemoFirst { RED(1,"hongse"),GREEN(2,"lvse"),YELLOW(3,"huangse"); private int code; private String msg; private EnumDemoFirst(int ordinal, String name) { this.code = ordinal; this.msg = name; } public int getCode() { return code; } public void setCode(int code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } }
然后是测试方法,
public class EnumTest { public static void main(String[] args) { EnumDemoFirst[] values = EnumDemoFirst.values(); for (EnumDemoFirst enumDemoFirst : values) { System.out.println(enumDemoFirst + "--" + enumDemoFirst.getCode() + "--" + enumDemoFirst.getMsg()); System.out.println("============="); } } }
此时的输出为,
RED--``1``--hongse ``============= GREEN--``2``--lvse ``============= YELLOW--``3``--huangse ``=============
这样的话,通过values() 方法就能很方便的使用枚举了。
6 枚举其数组化
orderIdxOperatorDetailDTO.setOrderSource(OrderSource.values()[consumeRecordDoc.getOrderSource()]);
7 Java 查看枚举类成员变量个数
虽然 Java 枚举类没有直接为我们提供这个属性,但是我们还是可以间接获取: Java 枚举类的成员方法 values 可以获取枚举类中的所有变量,并作为数组返回。 此时我们就可以利用数组的长度来得知 Java 枚举类中变量的个数,正好数组的 length 属性记录着这个个数。 所以方法就是 Enum.values().length
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年03月29日 19时30分09秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Netty4服务端入门代码示例
2019-03-04
VL53L0x TOF激光测距的 stm32 HAL库驱动代码
2019-03-04
自定义标签(JSP2.0)简单标签
2019-03-04
MyBatis自定义类型转换器
2019-03-04
Python:函数 ----》装饰器函数
2019-03-04
Python:面向对象
2019-03-04
Python练习题 :随机生成一批数
2019-03-04
Spring源码:prepareBeanFactory(beanFactory);方法
2019-03-04
Spring源码:initApplicationEventMulticaster源码解析
2019-03-04
AcWing 786: 第k个数
2019-03-04
AcWing 828. 模拟栈
2019-03-04
添加Selinux权限
2019-03-04
ifconfig网络配置信息解析
2019-03-04
(2019.9.10测试可用)如何在Windows的cmd中使用ls命令
2019-03-04
债券中的久期是什么意思
2019-03-04
(20200328已解决)从docker容器内复制文件到宿主机
2019-03-04
理解Docker ulimit参数
2019-03-04
理解Python系统下的时间格式
2019-03-04
Python语言'类'概念再理解
2019-03-04