首页 > 代码库 > "==" and "!=" should not be used when "equals" is overridden
"==" and "!=" should not be used when "equals" is overridden
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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。