首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

equlas的理解解决思路

2012-03-24 
equlas的理解今天看马老师的视频,心中一直留有一疑问,代码如下:String a马老师他说:a.equlas()和.

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。

热点排行