Java 杂谈

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

2018-12-24  本文已影响12人  b424191ea349

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)

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

上一篇下一篇

猜你喜欢

热点阅读