Skip to content

Commit f8b7bd7

Browse files
authored
format code
1 parent 4d34b0c commit f8b7bd7

File tree

1 file changed

+32
-28
lines changed

1 file changed

+32
-28
lines changed

ch03/07_Bridges.md

Lines changed: 32 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -19,49 +19,53 @@
1919
`3-6`。 传统的可比较整数的代码
2020

2121
```java
22-
interface Comparable {
23-
public int compareTo(Object o);
24-
}
25-
class Integer implements Comparable {
26-
private final int value;
27-
public Integer(int value) { this.value = value; }
28-
public int compareTo(Integer i) {
29-
return (value < i.value) ? -1 : (value == i.value) ? 0 : 1;
30-
}
31-
public int compareTo(Object o) {
32-
return compareTo((Integer)o);
33-
}
34-
}
22+
interface Comparable {
23+
public int compareTo(Object o);
24+
}
25+
class Integer implements Comparable {
26+
private final int value;
27+
public Integer(int value) {
28+
this.value = value;
29+
}
30+
public int compareTo(Integer i) {
31+
return (value < i.value) ? -1 : (value == i.value) ? 0 : 1;
32+
}
33+
public int compareTo(Object o) {
34+
return compareTo((Integer)o);
35+
}
36+
}
3537
```
3638

3739
`3-7`。 可比较整数的通用代码
3840

3941
```java
40-
interface Comparable<T> {
41-
public int compareTo(T o);
42-
}
43-
class Integer implements Comparable<Integer> {
44-
private final int value;
45-
public Integer(int value) { this.value = value; }
46-
public int compareTo(Integer i) {
47-
return (value < i.value) ? -1 : (value == i.value) ? 0 : 1;
48-
}
49-
}
42+
interface Comparable<T> {
43+
public int compareTo(T o);
44+
}
45+
class Integer implements Comparable<Integer> {
46+
private final int value;
47+
public Integer(int value) {
48+
this.value = value;
49+
}
50+
public int compareTo(Integer i) {
51+
return (value < i.value) ? -1 : (value == i.value) ? 0 : 1;
52+
}
53+
}
5054
```
5155

5256
如果您应用反射,您可以看到桥。 这里是代码,它使用 `toGenericString` 来打印方法的通用签名(参见 `7.5` 节),在 `Integer` 类中查找名称为 `compareTo` 的所有方法。
5357

5458
```java
55-
for (Method m : Integer.class.getMethods())
56-
if (m.getName().equals("compareTo"))
57-
System.out.println(m.toGenericString());
59+
for (Method m : Integer.class.getMethods())
60+
if (m.getName().equals("compareTo"))
61+
System.out.println(m.toGenericString());
5862
```
5963

6064
在通用版本的 `Integer` 类上运行此代码会产生以下输出:
6165

6266
```java
63-
public int Integer.compareTo(Integer)
64-
public bridge int Integer.compareTo(java.lang.Object)
67+
public int Integer.compareTo(Integer)
68+
public bridge int Integer.compareTo(java.lang.Object)
6569
```
6670

6771
这确实包含两种方法,一种是采用 `Integer` 类型参数的声明方法,另一种是采用 `Object` 类型参数的桥接方法。 (截至撰写本文时,`Sun JVM` 打印的是

0 commit comments

Comments
 (0)