[Effective Java 读书笔记] 第6章 枚举和注解
2015-11-03 22:48
465 查看
第三十条 用enum代替int
总得来说,使用enum有几点好处
1.编译时的类型安全,
2.可以保证就是自己定义的值,不会有月结风险,
3.每个枚举类型有自己的命名空间
4.枚举可以添加任意的方法和域
5.枚举类型是final的无法实例化,也就是实例可控的。。
第三十一条 用实例域替代序数
即不要依赖枚举值得定义顺序来指定他们的值,而应该讲枚举保存在一个实例域中,类似厦门的value值:
第三十二条 用EnumSet代替位域
EnumSet类就是用来替代位域的,即将指定的枚举值写入一个EnumSet类型里,读取出来时就知道特定的枚举值有没有被设定过
第 三十三条 用EnumMap替代序数索引
即用枚举值来做Map的key
第三十五条 注解优先于命名模式
第三十七 使用override
总得来说,使用enum有几点好处
1.编译时的类型安全,
2.可以保证就是自己定义的值,不会有月结风险,
3.每个枚举类型有自己的命名空间
4.枚举可以添加任意的方法和域
5.枚举类型是final的无法实例化,也就是实例可控的。。
第三十一条 用实例域替代序数
即不要依赖枚举值得定义顺序来指定他们的值,而应该讲枚举保存在一个实例域中,类似厦门的value值:
public enum RewardType { RMB(1), OBJECT(2), ZAN(3), OTHERS(4), NOREWARD(5); private final int value; private RewardType(int value){ this.value = value; } public int getValue(){ return value; } }
第三十二条 用EnumSet代替位域
EnumSet类就是用来替代位域的,即将指定的枚举值写入一个EnumSet类型里,读取出来时就知道特定的枚举值有没有被设定过
第 三十三条 用EnumMap替代序数索引
即用枚举值来做Map的key
第三十五条 注解优先于命名模式
第三十七 使用override
相关文章推荐
- Javascript 异步加载详解
- 分享一个超棒的动画延迟载入轮播图插件
- 深入浅出 JavaScript 中的 this
- js中的一些消息提示框
- LeetCode Populating Next Right Pointers in Each Node (技巧)
- javascript 实现 java 中String的hashcode方法
- 新闻上下滚动jquery 超简洁
- jQuery学习笔记之jQuery的Ajax(3)
- jQuery学习笔记之jQuery的Ajax(3)
- JQueryiframe页面操作父页面中的元素与方法(实例讲解)
- Node JS学习笔记
- React入门:关于JSX语法
- HTML超链接的用法
- React入门:关于虚拟DOM(Virtual DOM)
- HTML-列表标签
- jQuery学习笔记之DOM操作、事件绑定(2)
- jQuery学习笔记之DOM操作、事件绑定(2)
- 锋利的jQuery--表单等(读书笔记三)
- 锋利的jQuery--jQuery事件,动画(读书笔记二)
- HTML-字体标签