温馨提示:本系列博文(含示例代码)已经同步到 GitHub,地址为「java-skills」,欢迎感兴趣的童鞋
Star
、Fork
,纠错。
第 1 条:覆盖equals
时请遵守通用约定
覆盖equals
方法看似很简单,但是有许多覆盖方式会导致错误,并且后果非常严重。最容易避免这类问题的办法就是不覆盖equals
方法,在这种情况下,类的每个实例都只与它自身相等。如果类满足了以下任何一个条件,就不需要我们覆盖equals
方法:
- 类的每个实例本质上都是唯一的;
- 不关心类是否提供了“逻辑相等”的测试功能;
- 超类已经覆盖了
equals
方法,从超类继承过来的行为对于子类也是合适的; - 类是私有的或是包级私有的,可以确定它的
equals
方法永远不会被调用。
———— ☆☆☆ —— 返回 -> 那些年,关于 Java 的那些事儿 <- 目录 —— ☆☆☆ ————