码迷,mamicode.com
首页 > 其他好文 > 详细

"==" and "!=" should not be used when "equals" is overridden

时间:2017-07-22 21:01:22      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:UI   cio   value   get   sam   his   having   can   str   

It is equivalent to use the equality == operator and the equals method to compare two objects if the equals method inherited Object has not been overridden. In this case both checks compare the object references.

But as soon as equals is overridden, two objects not having the same reference but having the same value can be equal. This rule spots suspicious uses of == and != operators on objects whose equals methods are overridden.

Noncompliant Code Example

String firstName = getFirstName();   //String is a good example of a class overriding the equals method
String lastName = getLastName();

if (firstName == lastName) { ... };   // Non-compliant, the two literals can have the same value and yet the condition is false

Compliant Solution

String firstName = getFirstName();
String lastName = getLastName();

if (firstName != null && firstName.equals(lastName)) { ... };

"==" and "!=" should not be used when "equals" is overridden

标签:UI   cio   value   get   sam   his   having   can   str   

原文地址:http://www.cnblogs.com/winner-0715/p/7222286.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!