人类高质量重写equals方法
2023-04-18 14:07:02 时间
人类高质量重写equals方法:
- 使用==操作符检查“参数是否为这个对象的引用”。如果是,返回true
- 使用instanceof操作符检查“参数是否为正确的类型“。如果不是,则返回false
- 把参数转换成正确的的类型。因为入参是Object且上文中已经判断过是相同的类型,所以转换成比较的类型一定不会出现问题。
- 对于该类中的每个”关键“域,检查参数中的域是否与该对象中对应的域相匹配。
- 如果上文中的判断全部成功,则返回true,否则返回false。
高质量重写equals方法的优秀案例:
String.equals()
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
相关文章
- 2018年2月iOS面试总结
- 程序员的10个老大难问题
- iOS开发中的11种锁以及性能对比
- 彻底理解 Android MD 设计里的 “阴影”
- 这届iOS到底是怎么了?
- 密码成为被淘汰的落后技术 微软将支持用手机解锁电脑
- 安卓GO系统发展缓慢:目前仅十余个App可用
- 揭秘12306团队:为一张票"抢"一年 与机器抢票对战
- 安卓7.0跃居份额第一:你升级了吗?
- 提升iOS开发效率的一些keys
- 旅行青蛙Unity游戏逆向修改--iOS篇
- iOS架构师的必经之路
- 推荐提升iOS开发效率的一些keys
- 谷歌自主开发系统Fuchsia OS曝光:流畅度爆表
- 安卓9.0第一版完工!3月圆周率日推送:干掉碎片化
- 微信红包的随机算法是怎样实现的?
- 小米A1公布内核源码:变身刷机小王子
- 2018WOT全球软件与运维技术峰会扬帆起航
- 挨踢部落直播课堂第九期:技术还是管理,程序员应该如何规划自己的职业道路?
- 【有奖征集】挨踢部落故事汇第四期期待你的分享