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


 

相关文章:

  • 2021-06-20
  • 2021-08-30
  • 2021-12-16
  • 2021-12-12
  • 2021-08-23
  • 2021-08-30
  • 2021-08-14
  • 2022-02-11
猜你喜欢
  • 2021-08-20
  • 2021-10-25
  • 2021-10-03
  • 2021-11-27
  • 2022-02-18
  • 2022-02-01
  • 2021-10-03
相关资源
相似解决方案