equlas的理解
今天看马老师的视频,心中一直留有一疑问,代码如下:
String a="";
马老师他说:a.equlas("")和"".equlas()有什么不同,各位大虾,求解啊!
a的值是变量,任何值都可!
------解决方案--------------------a.equlas("")可能引起
空指针异常 则"".equlas() 不存在此问题
------解决方案--------------------a.equals时有可能a是null. 会引起
NullPointerException"".equals用于判断字符串是否为空字符串时比较常用.
但是要考虑比较对象前后空格的问题.换句话说"".equals(a)时最好搭配a.trim()方法使用.
------解决方案--------------------String a = null;
a.equals("");
会报NullPointerException
而"".equals(a)则不会。
------解决方案--------------------a.equals(""); //NullPointerException
------解决方案--------------------看看api的解释
equals 方法在非空对象引用上实现相等关系:
自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。
对称性:对于任何非空引用值 x 和 y,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 也应返回 true。
传递性:对于任何非空引用值 x、y 和 z,如果 x.equals(y) 返回 true,并且 y.equals(z) 返回 true,那么 x.equals(z) 应返回 true。
一致性:对于任何非空引用值 x 和 y,多次调用 x.equals(y) 始终返回 true 或始终返回 false,前提是对象上 equals 比较中所用的信息没有被修改。
对于任何非空引用值 x,x.equals(null) 都应返回 false。