Effective Java
来源:互联网 发布:linux snmp 监控cpu 编辑:程序博客网 时间:2024/06/05 03:44
1. 用enum代替int常量。
2. 用实例域代替序数。
3. 用EnumSet代替位域。
4. 用EnumMap代替序数索引。
1. 用enum代替int常量。
与int常量相比,枚举简单易读,也更加的安全,功能更加强大。在我们日常的编码过程中要有用枚举来替代常量的意识。
2. 用实例域代替序数。
枚举是有顺序的,我们可以通过ordinal()来得到序号,但是我们不要根据这个序号导出与它关联的值,而是要将它保存在一个实例域中。看下面代码,我们用index保存序号。
public enum Color { RED(1), GREEN(2), BLANK(3), YELLO(4); private int index ; private Color(int index ){ this.index = index ; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } }
看这小节之前,可以先看一下上一篇关于EnumSet的原理。EnumSet用来存放枚举的集合,用位向量来操作和保存枚举集合。当一组常量需要用到位运算,我们可以用枚举和EnumSet来进行处理。这样可以编写更加安全和高效的代码。
4. 用EnumMap代替序数索引。
看着小节之前,可以先看一下上一篇关于EnumMap的原理。总结一下这节的内容,虽然枚举有顺序数,我们可以通过ordinal方法得到,但不要用这个数来作为索引(数组的或者其他的),我们可以用EnumMap做作为替换,直接把枚举作为EnumMap的key,想要的内容作为EnumMap的value。可以参考一下文中的第一个例子。更加安全,效率也很高。
阅读全文
0 0
- Effective Java
- Effective Java
- Effective Java
- Effective Java
- effective java
- effective java
- Effective Java
- Effective Java
- effective java
- Effective Java
- Effective Java
- 《Effective Java》
- effective java
- effective java
- Effective Java
- Effective Java
- 《Effective java》
- Effective Java
- 第四章 后台传值并跳转jsp-跟赵大笨笨学SpringMVC
- JavaScript——DOM操作
- 2.Git初始化
- C语言计算sinx
- OGG-00396 Command not terminated by semi-colon
- Effective Java
- MyBatis一对多关联查询总结(五)
- 【HTML 基础】02 基本标签
- springMVC的常用注解
- 51Nod-1522-上下序列
- Struts2注解式开发小记
- JAVA JNI生成C++头文件
- A. Sasha and Sticks
- HPU2017-栈和队列练习