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