阶段1 语言基础+高级_1-3-Java语言高级_03-常用API第二部分_第1节 Object类_3_重写Object类的equals方法


现在要重写Object的equlas方法。比较两个对象的属性值。但是存在的问题是多态


解决方法就是向下转型




name和age相同,比较结果是true


存在的问题,如果参数我传一个ArrayList。它也是Object的子类。那么参数强转为Person的类的话 就会报错。

ArrayList强转为Person就会报错。



增加判断,用instanceof判断类型

这样如果传入的ArrayList那么就直接返回false ,并不会抛出异常。


传递空值过去。null是引用类型的默认值

增加if判断,如果是null直接返回false


如果p1和p1比较
增加一个判断,传递的参数obj 如果是this本身。直接返回true,提高程序的效率

传自己直接返回true


 

快捷键添加






Alt+Insert

选择next


next--

这是生成的代码





下面来了解Objects.equals


 

猜你喜欢

转载自www.cnblogs.com/wangjunwei/p/11226258.html