定义枚举实例时按照顺序定义的好处

来源:互联网 发布:c语言sleep和wait区别 编辑:程序博客网 时间:2024/06/14 20:28
java的枚举基本上大家都用过,枚举定义时候的顺序对程序的影响呢,呵呵,我也是最近才发现这个问题,这涉及到两个方法public final int compareTo(E o);和public final int ordinal();
ordinal();返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零).这个方法很有意思,基本上大多数时候用不到,但是很多时候我们有种需求就是在定义一些类型的时候我们喜欢用int类型来定义,但是转换为枚举的时候,我门一般会在枚举里面定义一个private int value;来表示类型的值(常用于对应数据库里面的类型字段),其实我们在定义枚举的时候直接按照int值的顺序在枚举里面定义,然后通过ordinal();就可以直接获取对应的值了(还有堆里面少一个int变量的内存分配,当然微不足道,^-^).当然还有其他方式的使用,比如我觉得比较经典的是fastjson里面com.alibaba.fastjson.parser.Feature这个类,使用得很巧妙,大家可以自己看看.
至于compareTo(E o);这个方法我直接贴出来源码好了,看看大家就知道了

public final int compareTo(E o) {
Enum other = (Enum)o;
Enum self = this;
if (self.getClass() != other.getClass() && // optimization
self.getDeclaringClass() != other.getDeclaringClass())
throw new ClassCastException();
return self.ordinal - other.ordinal;
}

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 大胸走路容易抖怎么办 哎呦该怎么办是什么歌 老婆想爆我菊花怎么办 衣服泡了一晚上怎么办? 来大姨妈了该怎么办 耳机戴不住总掉怎么办 眼睛被辣椒辣了怎么办 电信光猫复位后怎么办 电信光猫重置了怎么办 u盘无法安全弹出怎么办 u盘不能安全弹出怎么办 真空杯不保温了怎么办 锅底外面烧黑了怎么办 锅底里面烧黑了怎么办 佳能50镜头跑焦怎么办 g7x镜头进灰了怎么办 leica镜头进灰了怎么办 请问喉咙痒咳嗽该怎么办 喉咙痒咳嗽有痰怎么办 痒咳嗽停不下来怎么办 嗓子疼咳嗽有痰怎么办 上火了喉咙干痒怎么办 喉咙里总是有痰怎么办 1岁宝宝喉咙有痰怎么办 嗓子总感觉有痰怎么办 嗓子痒感觉有痰怎么办 1岁宝宝嗓子有痰怎么办 3岁宝宝嗓子有痰怎么办 喉咙总感觉有痰怎么办 感冒了喉咙有痰怎么办 咽喉有异物感是怎么办 老感觉喉咙有痰怎么办 感冒有痰怎么办最有效 感冒快好了有痰怎么办 喉咙里一直有痰怎么办 一到晚上就咳嗽怎么办 1岁宝宝咳嗽痰多怎么办 3岁宝宝咳嗽痰多怎么办 六岁儿童咳嗽有痰怎么办 很多白痰在喉咙怎么办 我喉咙总是有痰怎么办