EffectiveJava(31) -- 使用实例域代替Enum的序数排序
2017-03-18 22:09
295 查看
所有的枚举都有一个ordinal方法,他返回每个枚举常量在类型中的数字位置.大多数程序员都不需要这个方法,它是设计成用于像EnumSet和EnumMap这种基于枚举的通用数据结构的.除非你在编写的是这种数据结构,否则最好完全避免使用ordinal方法.
ordinal()方法: 返回枚举值在枚举类种的顺序。这个顺序根据枚举值声明的顺序而定。
当我们在对数组进行排序的时候,我们不应该根据枚举的序数导出与它关联的值,这将会使得你的方法后期的维护如噩梦一般,你要做的是将它保存在一个实例域中:
ordinal()方法: 返回枚举值在枚举类种的顺序。这个顺序根据枚举值声明的顺序而定。
当我们在对数组进行排序的时候,我们不应该根据枚举的序数导出与它关联的值,这将会使得你的方法后期的维护如噩梦一般,你要做的是将它保存在一个实例域中:
public enum Ensemble{ SOLO(1),DUET(2),TRIQ(3),QUARTET(4),QUINTET(5); private final int numberOfMusicians; Ensemble(int size){ this.numberOfMusicians = size; } public int numberOfMusicians(){ return numberOfMusicians; } }
相关文章推荐
- 使用Display标签对大量数据使用外部排序实例(一)
- Effective C++读书笔记--Item 2:使用const,enum和template inline函数代替宏
- python技巧31[python中使用enum](转)
- JS中使用sort结合localeCompare实现中文排序实例
- 【代码优化】使用enum代替int常量
- JDK 1.5 特性使用实例4--Enum
- python字典(dictionary)使用:基本函数code实例,字典的合并、排序、copy,函数中*args 和**kwargs做形参和实参
- 图片不存在使用默认图片代替的实例
- 31天重构学习笔记31. 使用多态代替条件判断
- C++ 模板 使用 enum 代替 typename
- 使用类来代替enum
- DataTable中使用Order By排序与Where过滤 实例
- DataTable中使用Order By排序与Where过滤 实例
- python技巧31[python中使用enum]
- 31天重构学习笔记31. 使用多态代替条件判断
- 使用Display标签对大量数据使用外部排序实例(二)
- 31 天重构学习笔记31. 使用多态代替条件判断
- Enum使用实例
- ASP.NET MVC 3.0(十九): MVC 3.0 实例之使用开源控件实现表格排序和分页
- python字典(dictionary)使用:基本函数code实例,字典的合并、排序、copy,函数中*args 和**kwargs做形参和实参