Tiger学习 之 switch中的Enum<Enumerated>

本文探讨了Java中枚举类型与switch语句的结合使用。介绍了如何利用枚举对象进行case匹配,并讨论了编译时的处理方式,包括通过创建跳转表或转换为if-else语句的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Tiger之前的switch只能运用 int、short、char、bye值(不能用String很麻烦...),现在支持Enum...
[quote]
switch (te.getEn()) { [color=blue]//te.getEn() 取得一个Enum对象,进行case[/color]
case A : System.out.println("Hello A");
case B : System.out.println("Hello B");
[color=blue] //奇怪吧?关于 case A,case B,不能把Enum加上,如 EnumFirst.A 会出错的...所以要小心,必须case到所有的值(如果需要)[/color]
default: System.out.println("Hello default");[color=blue]//推荐加上default,防止Enum变化,没有捕获到[/color]
}
[/quote]

关于Enum的编译...
编译的时候不会转化成case ...(nt、short、char、bye)值的,有两种处理方式:
1.会创建一个 jump table,然后通过ordinal来处理(同一编译单元)
2.转换成if else ....判断(不同一编译单元)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值