Java对于重写equals的检查
来源:互联网 发布:怎么改淘宝会员名 编辑:程序博客网 时间:2024/06/18 12:08
Java类的equals方法是从Object类中继承来的,用来判断对象是否逻辑上相等,而不是只判断对象的引用相等(==)。举个例子,判断字符串相等只要两个字符串的内容相等即可,两个字符串的equals就为true,而二者的==并不一定成立。
Java对重写的equals方法有一定约束,要满足对称性,反射性,类推性,一致性等原则,但实际上对反射性(x.equals(x)必须返回是“true”)并没有检查,看下面的程序:
这里的equals直接返回的是false,明显不满足反射性,而这段代码编译运行都没有出错;而且在Java官方的API中建议的写法也有一定的问题,在继承中父类和子类对象的比较中并没有满足对称性,由此可见,重写equals方法的约束条件只是建议,而不是强制性的约束,因此我们在重写equals的时候要知道自己在干什么,防止出现上面的情况,虽然逻辑上时错误的,但编译运行都没有问题。
以前还做过一道很诡异的题:如果2个对象==,则他们一定equals一定是true吗?虽然逻辑上我们一定认为是正确的,但实际上却不一定哦。
O(∩_∩)O~
- Java对于重写equals的检查
- Java:重写equals的基本思路
- Java 重写equals 的范式
- java equals方法的重写
- java:equals方法的重写
- java对象equals方法的重写
- java对象equals方法的重写
- java对象equals方法的重写
- java对象equals方法的重写
- java对象equals方法的重写
- 62 Java 重写类的equals()方法
- java的equals方法重写注意事项
- java 重写equals方法注意的地方
- 重写Java String类的equals()方法
- java 中 重写equals方法的用处
- Java中重写equals方法的注意事项
- Java toString equals hashCode 方法的重写
- Java中equals()方法的重写
- 给任意窗口自定义ToolTips
- 详解 Oracle job 的使用与管理技巧!
- 20090901_ 利用Oracle内置分析函数进行高效统计汇总
- javascript实现简单幻灯片
- 开发人员一定要加入收藏夹的网站
- Java对于重写equals的检查
- COM线程的一些总结【转贴】
- Tomcat服务器配置参考之Valve组件
- warning: missing braces around initializer
- Input Section Directives in Assembly Code
- vista操作系统,从自带ie7升级到ie8,后引起ie不能上网问题的解决.
- string.format()是否应该多用?
- sql2000 挂起 注册表
- ant小资料