30. 用enum代替int常量
31. 用实例域代替序数
32. 用EnumSet代替位域
- EnumSet是线程不安全的,需要借助Collections.synchronizedSet
Set<MyEnum> s = Collections.synchronizedSet(EnumSet.noneOf(MyEnum.class));
33. 用EnumMap代替序数索引
34. 用接口模拟可伸缩的枚举
35. 注解优于命名模式
36. 坚持使用Override注解
37. 用标记接口定义类型
- 标记接口是没有包含方法声明的接口,而只是标明一个类实现了具有某种属性的接口