消灭 Java 代码的“坏味道”(19)

反例:

正例:

3.3.优先使用常量或确定值来调用 equals 方法

对象的 equals 方法容易抛空指针异常 , 应使用常量或确定有值的对象来调用 equals 方法 。 当然 , 使用java.util.Objects.equals() 方法是最佳实践 。

反例:

正例:

3.4.枚举的属性字段必须是私有不可变

枚举通常被当做常量使用 , 如果枚举中存在公共属性字段或设置字段方法 , 那么这些枚举常量的属性很容易被修改 。 理想情况下 , 枚举中的属性字段是私有的 , 并在私有构造函数中赋值 , 没有对应的 Setter 方法 , 最好加上 final 修饰符 。

反例:

正例:

推荐阅读