9
9
如果擦除通用代码的签名与遗留代码的签名相同,并且两个版本都编译为相同的字节代码,则可以保证二进制兼容性。通常情况下,这是自然发生的自然结果,但在本节
10
10
中,我们将看到一些可能导致问题的角落案例。
11
11
12
- 本节的一些示例摘自Mark Reinhold编写的内部Sun笔记 。
12
+ 本节的一些示例摘自 ` Mark Reinhold ` 编写的内部 ` Sun ` 笔记 。
13
13
14
- 调整擦除与集合类中的max方法的生成有关的一个边角情况出现了。我们在第3.2节和第3.6节中讨论了这种情况 ,但值得快速回顾一下。
14
+ 调整擦除与集合类中的 ` max ` 方法的生成有关的一个边角情况出现了。我们在第 ` 3.2 ` 节和第 ` 3.6 ` 节中讨论了这种情况 ,但值得快速回顾一下。
15
15
16
16
这是这种方法的遗留签名:
17
17
@@ -48,9 +48,9 @@ T max(Collection<? extends T> coll)
48
48
``` java
49
49
// 旧版本
50
50
public class Integer implements Comparable {
51
- public int compareTo (Object o ) { ... }
52
- public int compareTo (Integer i ) { ... }
53
- ...
51
+ public int compareTo (Object o ) { ... }
52
+ public int compareTo (Integer i ) { ... }
53
+ ...
54
54
}
55
55
```
56
56
@@ -59,8 +59,8 @@ public int compareTo(Integer i) { ... }
59
59
``` java
60
60
// 通用版本 - 保持二进制兼容性
61
61
public final class Integer implements Comparable<Integer > {
62
- public int compareTo (Integer i ) { ... }
63
- ...
62
+ public int compareTo (Integer i ) { ... }
63
+ ...
64
64
}
65
65
```
66
66
@@ -71,8 +71,8 @@ public int compareTo(Integer i) { ... }
71
71
``` java
72
72
// 旧版本
73
73
public interface Name extends Comparable {
74
- public int compareTo (Object o );
75
- ...
74
+ public int compareTo (Object o );
75
+ ...
76
76
}
77
77
```
78
78
@@ -81,8 +81,8 @@ public int compareTo(Object o);
81
81
``` java
82
82
// 通用版本 - 打破二进制兼容性
83
83
public interface Name extends Comparable<Name > {
84
- public int compareTo (Name n );
85
- ...
84
+ public int compareTo (Name n );
85
+ ...
86
86
}
87
87
```
88
88
@@ -91,8 +91,8 @@ public int compareTo(Name n);
91
91
``` java
92
92
// 通用版本 - 保持二进制兼容性
93
93
public interface Name extends Comparable<Object > {
94
- public int compareTo (Object o ) { ... }
95
- ...
94
+ public int compareTo (Object o ) { ... }
95
+ ...
96
96
}
97
97
```
98
98
@@ -120,8 +120,8 @@ public int compareTo(Object o) { ... }
120
120
121
121
``` java
122
122
class Object {
123
- public Object clone () { ... }
124
- ...
123
+ public Object clone () { ... }
124
+ ...
125
125
}
126
126
```
127
127
0 commit comments