Java官方标准是否推荐使用constant.equals(variable)的写法?
Java字符串相等判断写法对比
结论
CONSTANT_STRING.equals(a)的写法更优,也是Java官方标准推荐的写法。
核心原因
- 彻底规避调用方空指针风险:第一种写法调用
equals的主体是final修饰的字符串常量,本身不可能为null,永远不会抛出调用方为空的NullPointerException。 - 自动处理入参为空的场景:JDK中
String类的equals方法本身已经做了入参判断,当传入的a为null时会直接返回false,无需额外写a != null的校验逻辑,代码更简洁。 - 反过来如果用
a.equals(CONSTANT_STRING)的写法,一旦入参a是null,会直接抛出NullPointerException导致程序崩溃,除非提前额外做非空校验,增加了代码冗余。
补充说明
Java官方编码规范明确要求:进行等值判断时,确定不为空的常量、枚举值、已初始化的成员变量等要放在equals方法的左侧,就是为了从编码习惯层面避免不必要的空指针异常。
内容的提问来源于stack exchange,提问作者fatherazrael
相关产品推荐
相关产品推荐

