现在要重写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
