Effective Java读书笔记(第6章-枚举和注解)
2014-07-09 15:40
183 查看
第6章 枚举和注解
Java 1.5发行版本中增加了2个新的引用类型家族:一种新的类称作枚举类型,一种新的接口称作注解类型。
第30条:用enum代替int常量
Java的枚举本质上是int值,枚举类型是实例受控的,它们是单例的泛型化,本质上是单元素的枚举。枚举类型为类型安全的枚举模式。
第31条:用实例域代替序数
所有的枚举都有一个ordinal方法,它返回每个枚举常量在类型中的数字位置。
public enum Ensemble {
SOLO, DUET, TRIO, QUARTET, QUINTET,SEXTET, SEPTET,
OCTET,NONET,DECTET;
public int numberOfMusicians(){
return ordinal()+1;
}
} 以上代码不利于维护,永远不要根据枚举的序数导出与它关联的值,而是要将它保存在一个实例域中。
public enum Ensemble {
SOLO(1), DUET(2), TRIO(3), QUARTET(4), QUINTET(5),SEXTET(6), SEPTET(7),
OCTET(8),NONET(9),DECTET(10);
private final int numberOfMusicians;
Ensemble(int size){
this.numberOfMusicians = size;
}
public int numberOfMusicians(){
return numberOfMusicians+1;
}
}
它是设计成用于像EnumSet和EnumMap这样的数据结构,如果不写这些数据结构,就避免使用ordinal方法。
第32条:用EnumSet代替位域
第33条:用EnumMap代替序数索引
第34条:用接口模拟可伸缩的枚举
第35条:注解优先于命名模式
第36条:坚持使用Override注解
第37条:用标记接口定义类型
Java 1.5发行版本中增加了2个新的引用类型家族:一种新的类称作枚举类型,一种新的接口称作注解类型。
第30条:用enum代替int常量
Java的枚举本质上是int值,枚举类型是实例受控的,它们是单例的泛型化,本质上是单元素的枚举。枚举类型为类型安全的枚举模式。
第31条:用实例域代替序数
所有的枚举都有一个ordinal方法,它返回每个枚举常量在类型中的数字位置。
public enum Ensemble {
SOLO, DUET, TRIO, QUARTET, QUINTET,SEXTET, SEPTET,
OCTET,NONET,DECTET;
public int numberOfMusicians(){
return ordinal()+1;
}
} 以上代码不利于维护,永远不要根据枚举的序数导出与它关联的值,而是要将它保存在一个实例域中。
public enum Ensemble {
SOLO(1), DUET(2), TRIO(3), QUARTET(4), QUINTET(5),SEXTET(6), SEPTET(7),
OCTET(8),NONET(9),DECTET(10);
private final int numberOfMusicians;
Ensemble(int size){
this.numberOfMusicians = size;
}
public int numberOfMusicians(){
return numberOfMusicians+1;
}
}
它是设计成用于像EnumSet和EnumMap这样的数据结构,如果不写这些数据结构,就避免使用ordinal方法。
第32条:用EnumSet代替位域
第33条:用EnumMap代替序数索引
第34条:用接口模拟可伸缩的枚举
第35条:注解优先于命名模式
第36条:坚持使用Override注解
第37条:用标记接口定义类型
相关文章推荐
- 第6章 枚举和注解
- 第6章 枚举和注解
- 编写高质量代码:改善Java程序的151个建议(第6章:枚举和注解___建议83~87)
- 《Effective Java》第6章 枚举与注解
- 《Effective Java》第6章 枚举和注解
- 《编写高质量代码改善Java程序的151个建议》学习笔记 第6章 枚举和注解
- [Effective Java 读书笔记] 第6章 枚举和注解
- 编写高质量代码:改善Java程序的151个建议(第6章:枚举和注解___建议88~92)
- [编写高质量代码:改善java程序的151个建议]建议91 枚举和注解结合使用威力更大
- 改善java程序的151个建议--枚举和注解
- Java编程思想学习笔记——枚举、注解
- Support Annotations注解介绍以及自定义注解代替枚举
- 教你使用Android自带注解@IntDef代替Enum (枚举)
- Java高质量代码之 — 枚举与注解
- 【Java基础】枚举和注解
- 枚举和注解
- Effective java笔记(五),枚举和注解
- 使用注解@StringDef替代枚举-以切换环境为例
- 枚举和注解
- 随笔-java注解,反射,枚举