Update 10. 重写equals方法时遵守通用约定.md (#62)

This commit is contained in:
刘雄斌 2020-12-25 15:13:18 +08:00 committed by GitHub
parent 15ac584d63
commit c7c3483c23
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -350,7 +350,7 @@ public final class PhoneNumber {
1. **当重写 equals 方法时,同时也要重写 hashCode 方法(详见第 11 条)**
2. **不要让 equals 方法试图太聪明。** 如果只是简单地测试用于相等的属性,那么要遵守 equals 约定并不困难。如果你在寻找相等方面过于激进那么很容易陷入麻烦。一般来说考虑到任何形式的别名通常是一个坏主意。例如File 类不应该试图将引用的符号链接等同于同一文件对象。幸好 File 类并没这么做。
3. **在 equal 方法声明中,不要将参数 Object 替换成其他类型。** 对于程序员来说,编写一个如下所示的 equals 方法,然后花上几个小时苦苦思索为什么不能正常工作的情况并不少见:
3. **在 equals 方法声明中,不要将参数 Object 替换成其他类型。** 对于程序员来说,编写一个如下所示的 equals 方法,然后花上几个小时苦苦思索为什么不能正常工作的情况并不少见:
```java
// Broken - parameter type must be Object!