String s = "token";
// 寫法一
if (s.equals("token")) { ... }
// 寫法二
if ("token".equals(s)) { ... }
| 場景 | 寫法一 | 寫法二 |
|---|---|---|
s == null | 拋出 NullPointerException | 安全返回 false |
s != null | 正常比較 | 正常比較 |
| 性能 | 相同 | 相同 |
// 最佳實踐
if ("EXPECTED_VALUE".equals(userInput)) { ... }
// 判空輔助方法 (Java 7+)
if (Objects.equals(userInput, "EXPECTED_VALUE")) { ... }
Integer:Integer.valueOf(100).equals(id) 或 Objects.equals(id, 100)。Enum:MyEnum.VALUE == myEnum (引用比較安全) 或 MyEnum.VALUE.equals(myEnum)。Alibaba Java 開發手冊、Google Java Style Guide 均明確要求:**常量/字面量放在 equals 左側**。