重写java equals 方法的建议

@Overridepublic boolean equals(Object otherObject) {    //1.检测this 与 otherObject 是否引用同一个对象    if (this == otherObject) return true;    //2.检测otherObject 是否为null, 如果为null,返回false    if (null == otherObject) return false;    //3.比较this 与 ohterObject 是否属于同一个类    if(getClass() != otherObject.getClass()) return false;

if (!(otherObject instanceof Employee)) return false;

//4. 将otherObject 转换为相应的类类型变量    Employee employee = (Employee) otherObject;

//5.域比较    if (id != employee.id) return false;    if (Double.compare(employee.salary, salary) != 0) return false;    if (name != null ? !name.equals(employee.name) : employee.name != null) return false;

return true;}

-- 摘《java核心技术:卷一》
时间: 2025-01-01 22:53:23

重写java equals 方法的建议的相关文章

关于重写对象equals方法的问题

1.==和equals的区别 a.基本数据类型使用  == 进行值的比较 b.引用类型使用 == 进行比较时,直接比较的是对象的存储地址,即两个引用是否指向了同一个对象. c.equals方法是基类Object中的方法,该方法如果在其他类中没有被重写,则比较的还是地址,即两个引用是否指向了同一个对象,和==是一样的(其实equals方法的默认实现就是==).该方法在一些实现类中已经被重新了,如 String和Integer等包装类,在这些类中用来比较值是否相等. 即:equals方法如果没有重写

编写一个比较完美的equals方法的建议(java)

1.显示参数命名为otherObject,稍后需要将它转换成另一个叫做other的变量. 2.检测this与otherObject是否引用同一个对象: if(this==otherObject) return true; 这条语句只是一个优化.实际上,这是一种经常采用的额形式.因为计算这个灯饰要比一个一个地比较类中的域所付出的代价小很多. 3.检测otherObject是否为null,如果为null,返回false.这项检测是很必要的 if(otherObject==null) return f

Java equals方法详解

Java的Object类中定义了equals方法,Object类中的equals方法源代码如下,从源代码中可以看出Object类中的equals方法是用来返回判断两个对象是否指向同一个地址 public boolean equals(Object obj) { return (this == obj); } Ojbect类中的equals方法会被子类重写,例如String会重写equals方法,String的equals方法源代码如下, public boolean equals(Object

java equals 方法

package com.mydemo.controller; public class TestEquals { public static void main(String[] args) { Dog d1 = new Dog(1, 2, 3); Dog d2 = new Dog(1, 2, 3); // d1 永远不等于 d2,比较的是两个对象的引用 System.out.println(d1 == d2); // Object 的equals 方法默认比较两个对象的引用 System.ou

java -> equals方法与toString方法

equals方法 equals方法,用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较.Object类中的equals方法内部使用的就是==比较运算符(比较内存地址). 在开发中要比较两个对象是否相同,经常会根据对象中的属性值进行比较,也就是在开发经常需要子类重写equals方法根据对象的属性值进行比较.如下代码演示: /* 描述人这个类,并定义功能根据年龄判断是否是同龄人 由于要根据指定类的属性进行比较,这时只要覆盖Object中的equals方法 在方法体中根据类的属性值进行比

Java equals()方法与“==”的区别

== : 比较的是两个引用是否指向同一个对象. 结果: equals(): 继承Object中的方法时,作用同"==",比较的是两个引用是否指向同一个对象. 子类也可通过重写equals()方法的方式,来改变比较的内容. 原文地址:https://www.cnblogs.com/CPU-Easy/p/12250320.html

Java——equals方法---18.10.18

一.equals方法定义 public boolean equals(Object obj)方法 //提供对象是否"相等"的逻辑 二."equals"和"=="的区别 1."=="比较的是两个变量本身的值,即两个对象在内存中的首地址,当然,既然是两个对象,name首地址就不一样,所以若是s1=s2这样的,那就是false错的. 2."equals()"比较字符串中所包含的内容是否相同 例如: String

重写Object equals方法

public boolean equals(Object obj){  if(obj ==null) return false;  else  {    if(obj instanceof Cat)    {      cat c = (cat)obj;      if(c.color == this.color && c.height == this.height)        {          return true;        }    }  }  return false

java equals方法判断字符串不相等情况返回true?

如右图. 原文地址:http://blog.51cto.com/13588844/2286062