Effective Java 读书笔记之五 枚举和注解

时间:2021-03-30 23:46:17

  Java1.5中引入了两个新的应用类型家族,新的类为枚举类型,新的接口为注解类型。

一、用enum代替int常量

  1、枚举值由一组固定的常量组成合法值的类型。

二、用实例域代替序数

  1、不要根据枚举的序数导出它关联的值,而是把它保存在一个实例域中。

三、用EnumSet代替位域模式

  1、如果有枚举类型需要用在集合中,EnumSet就是最好的工具。

四、用EnumMap代替序数索引功能

  1、EnumMap更加安全和可靠。

五、用接口模拟实现可伸缩的枚举

  1、可伸缩的枚举类型,一般不是一个好主意。

  2、让枚举类型实现接口达到用接口模拟可伸缩枚举的功能。

六、注解优先于命名模式

  1、注解和注解解析器应该完全取代命名模式的使用。

七、坚持使用Override注解

八、用标记接口定义类型

  标记接口胜过标记注解的两点是:

    a、标记接口定义的类型是由被标记类的实例所实现的;标记注解则没有这样的类型。

    b、标记接口可以被更加精确地进行锁定。

  如果需要给类或者接口定义类型,接口就是好的选择,其他情况下应该考虑注解。