Java代码规范之避免使用空对象调用equals方法
目录
该条规范是什么
该规范指出在Java编程中,应避免使用空对象(null)来调用equals方法。而应使用常量或确定有值的对象来调用equals方法,以避免抛出空指针异常。
为什么这么规定
以下是该规范的原因:
- 避免空指针异常:如果将空对象作为equals方法的调用者,可能会导致空指针异常。使用非空的常量或确定有值的对象来调用equals方法可以避免这种异常。
- 保证正确性:equals方法通常用于比较对象的相等性,而空对象无法提供准确的值进行比较,可能导致不正确的结果。
多种主要用法及其代码示例
使用常量调用equals方法
public class Example {
public static void main(String[] args) {
String str = "Hello";
boolean isEqual = str.equals("World");
System.out.println(isEqual);
}
}
使用确定有值的对象调用equals方法
public class Example {
public static void main(String[] args) {
Person person1 = new Person("John");
Person person2 = new Person("John");
boolean isEqual = person1.equals(person2);
System.out.println(isEqual);
}
}
class Person {
private String name;
public Person(String name) {
this.name = name;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj instanceof Person) {
Person other = (Person) obj;
return this.name.equals(other.name);
}
return false;
}
}