Skip to content

Commit 56069bb

Browse files
authored
Update 04_Maintain_Binary_Compatibility.md
1 parent 14824f1 commit 56069bb

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

ch08/04_Maintain_Binary_Compatibility.md

+3-2
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ public interface Name extends Comparable<Object> {
105105
`compareTo(Object)` 的客户端代码将在 `SimpleName`(定义它的位置)而不是 `ExtendedName`(它未定义的地方)上调用该方法,将被比较,但扩展忽略。这在
106106
示例 `8-2` 和示例 `8-3` 中进行了说明。
107107

108-
我们得到的教训是,除非您有信心可以兼容所有亚类,否则每次生成一个班时都要特别小心。请注意,如果将一个类声明为 `final` ,那么您有更多的余地,因为它不能
108+
我们得到的教训是,除非您有信心可以兼容所有亚类,否则每次生成一个类时都要特别小心。请注意,如果将一个类声明为 `final` ,那么您有更多的余地,因为它不能
109109
有子类。
110110

111111
还要注意,如果原始的 `Name` 接口不仅声明了一般重载 `compareTo(Object)`,还声明了更具体的重载 `compareTo(Name)`,那么将需要旧版本的 `SimpleName`
@@ -206,7 +206,8 @@ class Test {
206206
}
207207
```
208208

209-
但是,选择这种生成功能会破坏二进制兼容性。 用户很可能已经定义了覆盖克隆的 `HashSet` 的子类。 任何这样的子类都不适用于之前给出的 `HashSet` 的通用版本。 唯一的解决办法是选择一个不那么雄心勃勃的基因工程:
209+
但是,选择这种生成功能会破坏二进制兼容性。 用户很可能已经定义了覆盖克隆的 `HashSet` 的子类。 任何这样的子类都不适用于之前给出的 `HashSet` 的通用版
210+
本。 唯一的解决办法是选择一个不那么雄心勃勃的基因工程:
210211

211212
```java
212213
// 通用版本 - 保持二进制兼容性

0 commit comments

Comments
 (0)