Skip to content

Commit 6945b01

Browse files
authored
format code
1 parent 61c8ea7 commit 6945b01

File tree

1 file changed

+24
-24
lines changed

1 file changed

+24
-24
lines changed

ch02/06_Wildcards_Versus_Type_Parameters.md

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -9,32 +9,32 @@
99
通配符: 以下是 `Java` 中泛型方法的类型:
1010

1111
```java
12-
interface Collection<E> {
12+
interface Collection<E> {
1313
...
1414
public boolean contains(Object o);
1515
public boolean containsAll(Collection<?> c);
1616
...
17-
}
17+
}
1818
```
1919

2020
第一种方法根本不使用泛型! 第二种方法是我们第一次看到一个重要的缩写。 类型 `Collection <?>` 代表:
2121

2222
```java
23-
Collection<? extends Object>
23+
Collection<? extends Object>
2424
```
2525

2626
扩展对象是通配符最常用的用法之一,所以提供一个简短的表单来编写它是有意义的.
2727

2828
这些方法让我们测试成员和遏制:
2929

3030
```java
31-
Object obj = "one";
32-
List<Object> objs = Arrays.<Object>asList("one", 2, 3.14, 4);
33-
List<Integer> ints = Arrays.asList(2, 4);
34-
assert objs.contains(obj);
35-
assert objs.containsAll(ints);
36-
assert !ints.contains(obj);
37-
assert !ints.containsAll(objs);
31+
Object obj = "one";
32+
List<Object> objs = Arrays.<Object>asList("one", 2, 3.14, 4);
33+
List<Integer> ints = Arrays.asList(2, 4);
34+
assert objs.contains(obj);
35+
assert objs.containsAll(ints);
36+
assert !ints.contains(obj);
37+
assert !ints.containsAll(objs);
3838
```
3939

4040
给定的对象列表包含字符串 “one” 和给定的整数列表,但给定的整数列表不包含字符串 “one”,也不包含给定的对象列表。
@@ -43,35 +43,35 @@
4343
这样的测试可能会成功:
4444

4545
```java
46-
Object obj = 1;
47-
List<Object> objs = Arrays.<Object>asList(1, 3);
48-
List<Integer> ints = Arrays.asList(1, 2, 3, 4);
49-
assert ints.contains(obj);
50-
assert ints.containsAll(objs);
46+
Object obj = 1;
47+
List<Object> objs = Arrays.<Object>asList(1, 3);
48+
List<Integer> ints = Arrays.asList(1, 2, 3, 4);
49+
assert ints.contains(obj);
50+
assert ints.containsAll(objs);
5151
```
5252

5353
在这种情况下,对象可能被包含在整数列表中,因为它碰巧是一个整数,并且对象列表可能包含在整数列表中,因为列表中的每个对象碰巧是一个整数。 - 类型参数你
5454
可以合理地选择一个替代设计的集合- 只能测试元素类型的子类型的容器的设计:
5555

5656
```java
57-
interface MyCollection<E> { // alternative design
57+
interface MyCollection<E> { // alternative design
5858
...
5959
public boolean contains(E o);
6060
public boolean containsAll(Collection<? extends E> c);
6161
...
62-
}
62+
}
6363
```
6464

6565
假设我们有一个实现 `MyCollection``MyList` 类。 现在这些测试是合法的,只有一个方法:
6666

6767
```java
68-
Object obj = "one";
69-
MyList<Object> objs = MyList.<Object>asList("one", 2, 3.14, 4);
70-
MyList<Integer> ints = MyList.asList(2, 4);
71-
assert objs.contains(obj);
72-
assert objs.containsAll(ints)
73-
assert !ints.contains(obj); // 编译报错
74-
assert !ints.containsAll(objs); // 编译报错
68+
Object obj = "one";
69+
MyList<Object> objs = MyList.<Object>asList("one", 2, 3.14, 4);
70+
MyList<Integer> ints = MyList.asList(2, 4);
71+
assert objs.contains(obj);
72+
assert objs.containsAll(ints)
73+
assert !ints.contains(obj); // 编译报错
74+
assert !ints.containsAll(objs); // 编译报错
7575
```
7676

7777
最后两个测试是非法的,因为类型声明要求我们只能测试一个列表是否包含该列表的一个子类型的元素。所以我们可以检查一个对象列表是否包含整数列表,而不是相

0 commit comments

Comments
 (0)