第31条:用实例域代替序数

问题:

实现一个枚举,要求:Fruit(水果)枚举方法内有三个属性,分别是:APPLE(苹果)-1、PEAR(梨)-2、ORANGE(橘子)-3

枚举类型会自动生成一个ordinal()方法,返回常量所处的位置索引。.

但是这种方法存在一些问题:

1、以后重排序,会破坏numberOfFruit()

2、这种方法得出的常量对应的int值一定是唯一的,但有时我们要不唯一

优化

结论:

永远不要根据枚举的序数导出与他关联的值,而是要将它保存在一个实例域中。

拓展

后台输出结果是什么?

结果:





最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容