[Effective Java 读书笔记] 第6章 枚举和注解

第三十条 用enum代替int

总得来说,使用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

原文地址:https://www.cnblogs.com/jiangz222/p/4934645.html