覆盖equals时请遵守通用约定——Effective Java 读书笔记
来源:互联网 发布:淘宝批量发货收费吗 编辑:程序博客网 时间:2024/05/22 16:02
如果满足了以下任一条件,这就正是所期望的结果:
类的每个实例本质上都是唯一的。
不关心类是否提供了“逻辑相等”的测试功能。
超类已经覆盖了equals,从超类继承过来的行为对于子类也是适合的。
类是私有的或是包级私有的,可以确定它的equals方法永远不会被调用。
如果类具有自己特有的“罗吉相等”概念(不同于对象等同的概念),而且超类还,没有覆盖equals以实现期望的行为,这时我们就需要覆盖equals方法。
equals方法实现了等价关系:
自反性
对称性
传递性
一致性
非空性:对于任何非null的引用值x,x.equals(null)必须返回false
实现高质量equals方法的诀窍:
1、使用==操作符检查“参数是否为这个对象的引用”。
2、使用instanceof操作符检查“参数是否为正确的类型”。
3、把参数转换成正确的类型。
4、对于该类中的,每个“关键”域,检查参数中的域是否与该对象中对于的域相匹配。
5、当你编写完成了equals方法之后,应该问自己三个问题:它是否是对称的、传递的、一致的?
告诫:
覆盖equals时总要覆盖hashCode。
不要企图让equals方法过于智能。
不要将equals声明中的object对象替换为其他的类型。
1 0
- 覆盖equals时请遵守通用约定——Effective Java 读书笔记
- 《Effective Java》读书笔记——覆盖equals时请遵守通用约定
- effective java (8) 覆盖equals时请遵守通用约定
- Effective Java读书笔记-覆盖equals时遵守的通用约定
- Effective Java 第八条:覆盖equals请遵守通用约定
- Effective Java(避免使用最终方法、覆盖equals时请遵守通用约定)
- 覆盖equals时请遵守通用约定
- 覆盖equals时请遵守通用约定。
- 《Effective Java》读书笔记07--覆盖equals时要遵守通用约定
- Effective Java 对于所用对象都通用的方法 8.覆盖equals时请遵守通用约定.txt
- 第8条:覆盖equals时请遵守通用约定
- 第8条:覆盖equals时请遵守通用约定
- 第8条:覆盖equals时请遵守通用约定
- 第八条:覆盖equals时请遵守通用约定
- 第8条:覆盖equals时请遵守通用约定
- Effective Java 第8条:覆盖equals时要遵守通用约定
- 《Effective java》读书记录-第8条-覆盖equals时需要遵守通用约定
- effective java(8) 之覆盖equals时遵守通用的约定
- 项目开发经验分享—导入Excel
- Android - AndroidManifest节点
- Modbus协议
- 把PDF转换成PPT的解决方法
- codeforces 509C Sums of Digits
- 覆盖equals时请遵守通用约定——Effective Java 读书笔记
- emwin初始化GUI_Init()进hardfault的解决办法
- poj3107 树的重心
- C#基础知识复习1代码规范-执行流程(c#)-面向对象-引用命名空间-封装-继承-访问修饰符-虚方法-静态成员-多态-抽象类等
- WinFrom Chart柱状图的使用
- Android - Toast字体修改
- nginx链表ngx_list_t
- LeetCode(160) Intersection of Two Linked Lists
- 学习编程的方法