美文网首页Java 杂谈
Java中字符串比较equal方法为什么要常量放在前面

Java中字符串比较equal方法为什么要常量放在前面

作者: b424191ea349 | 来源:发表于2018-12-24 09:27 被阅读12次

    1. 问题背景


    Java在写字符串比较的时候常常会被要求用下面这种方式来写:

    "xxx".equal(comparedStr)
    

    也就是一定要把字符串常量xxx放在前面,comparedStr变量放在后面。

    2. 原理

    简单一句话来解释是为了防止空指针异常
    我们知道comparedStr变量是有可能为为null的,如果我们这样写:

    comparedStr.equal("xxx")
    

    comparedStr一旦是null的话就会报空指针了。
    而把常量放在前面,当comparedStr变量为null的时候就是:

    "xxx".equal(null)
    

    依旧可以比较。

    3. 更好的方式


    在Java8中为我们提供了一个工具类Objects
    我们可以:

    Objects.equals("xxx", comparedStr)
    

    这样无论怎么改位置都没有问题了。

    相关文章

      网友评论

        本文标题:Java中字符串比较equal方法为什么要常量放在前面

        本文链接:https://www.haomeiwen.com/subject/ufjakqtx.html