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)
这样无论怎么改位置都没有问题了。
网友评论