【问题标题】:Constants while testing equality / inequality placed left测试相等/不等式时的常量放在左边
【发布时间】:2026-02-24 10:10:01
【问题描述】:

我刚完成硕士学位,我有一位非常技术性的老师总是告诉我们:

预言应该总是在等式和比较的左边

因为我是法国人,所以准确的句子应该是:

L'oracle doit toujours être à gauche des égalités et comparaisons

“oracle”一词在这里指的是常数,所以不要写成:

mystring.equals("foo"); 我们应该写 "foo".equals(mystring);

我从来没有聪明地问他为什么,因为我只是听他的技术建议。我现在感觉很笨,所以我的问题是:

除了风格的观点,是否有任何技术原因,例如优化或性能或类似的东西,将常量写在等式/比较的左侧?

提前谢谢你!

【问题讨论】:

    标签: constants equality readability


    【解决方案1】:

    “比较左侧的常数”有两个原因。

    s.equals("x")
    

    可以抛出 NullPointerException

    在其他语言中使用 == 不能将其与赋值混淆 =

    if (x = 3) {
    

    Java 已经防范了第二种情况,现在的一般做法是避免空值。所以论据是弱的。然而,在我目前的工作中,我们确实遵循了这条规则。

    【讨论】: